Не видит переменную js

lutskboy
На сайте с 22.11.2013
Offline
170
448

ПРИВЕТ

имеем переменную в скрипте totaluploaded_file. console.log ее выводит. потом я ее уменьшаю и снова console.log ее выводит.

затем имеем функцию, и я в нее подставляю file , но мне в консоли уже выводит totaluploaded_file

а мне нужно как число. как так сделать


<script type="text/javascript">
var totaluploaded_file = 3;
console.log(totaluploaded_file);
totaluploaded_file --;
console.log(totaluploaded_file);
function hi(name){
console.log('totaluploaded_'+name);
}
hi('file');
</script>

https://jsfiddle.net/5sgtom14/

I2
На сайте с 07.03.2015
Offline
38
#1

Может не очень хорошее решение, но попробуйте через метод eval()

https://jsfiddle.net/5sgtom14/1/

Качественная верстка PSD макетов (/ru/forum/974524)
lutskboy
На сайте с 22.11.2013
Offline
170
#2
indenger20:
Может не очень хорошее решение, но попробуйте через метод eval()

https://jsfiddle.net/5sgtom14/1/

да. работает. но почему не очень хорошее решение?

кстати да. не то. потом мне в функции сделать totaluploaded_file --; и выдает ошибку

I2
На сайте с 07.03.2015
Offline
38
#3

Дело в том, что это не безопасный метод, ведь он выполняет любой код, который пришел строкой. Но если вы уверенны, что в строке ничего опасного не будет, то используйте.

NothingMatters
На сайте с 12.06.2017
Offline
45
#4

'totaluploaded_'+name

Это не перменная. Это строка.

Один из вариантов:

var vars = {
'totaluploaded_file': 1,
'totaluploaded_abc': 2,
};

vars['totaluploaded_'+name]++;
console.log(vars['totaluploaded_'+name])

Ну или вместо vars использовать window.


window.totaluploaded_file = 1;
console.log(window['totaluploaded_'+name]);
lutskboy
На сайте с 22.11.2013
Offline
170
#5

спасибо всем. тоже как раз нашел https://stackoverflow.com/questions/5613834/convert-string-to-variable-name-in-javascript

nezabor
На сайте с 19.07.2010
Offline
152
#6

пробел уберите

Чудес не бывает...

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий