["var" +1] = someValue - можно ли что-то подобное сделать? - PullRequest
0 голосов
/ 01 декабря 2010
function giveValue(n){
    ["r"+n]=5;
}
giveValue(10);

Вы поняли.

Дело в том, что у меня есть несколько переменных с похожим именем, которые меняются только числом в конце. Использование оператора switch хорошо с несколькими переменными несколько раз, но для этого конкретного проекта это сводит меня с ума. Я знаю, что могу сделать:

var r2="lol";
var someVar=eval("r"+2);
//someVar=="lol"

И мне было интересно, смогу ли я сделать что-то подобное, но с динамической ссылкой слева от назначения.

Возможно ли это?

Ответы [ 2 ]

3 голосов
/ 01 декабря 2010

Если вы ДЕЙСТВИТЕЛЬНО хотите это сделать, это должно работать:

function giveValue(n){
    window['r'+n] = 5;
}
giveValue(10);

console.log(r10)

Но, пожалуйста, НЕ ДЕЛАЙТЕ ЭТОГО!

Вы действительно должны использовать массивы !

2 голосов
/ 01 декабря 2010

Лучший способ - создать массив с именем r:

var r = [];
r[2] = 5;
...