Как сделать разыменование массива javascript?

Как разыменовать массив в js? Т.е. раскидать элементы массива по переменным? Для примера в python это делается так: foo, bar = [1, 2]
  • Вопрос задан
  • 4047 просмотров
Пригласить эксперта
Ответы на вопрос 4
Разрушающее присваивание (destructuring assignment):

var a, b;
[a, b] = [1, 2];


Появилось в JavaScript 1.7, работает в Fx2.0+; вероятно, также в O11.50+ и IE9+.
Ответ написан
SerDIDG
@SerDIDG
В такой поздний час пришло в голову только такие варианты.
Глобальные переменные:

var arr = {'one' : 1, 'two' : 2};

for(var key in arr){
    if(arr.hasOwnProperty(key)){
        window[key] = arr[key];
    }
}
</script>

Если вместо window подставить this, то видимость переменных ограничится функцией.

И такой вариант, но использовать не рекомендую.

<source lang="javascript">
var arr = {'one' : 1, 'two' : 2};

for(var key in arr){
    if(arr.hasOwnProperty(key)){
        eval('var ' + key + '='+arr[key]);
    }
}
Ответ написан
@mayorovp
Никак, javascript это не поддерживает.

Простейший обходной путь вот:
var foo = arr[0];
var bar = arr[1];
Ответ написан
Комментировать
jazzz13
@jazzz13
Для массива предлагаю сделать так:

var carList = ["bmw","audi","volvo"];
for(var i=0; i<carList.length;i++){
    window["carList_"+i] = carList[i];
}

Как видно, запись идет в глобальные переменные.
Способа записи в область видимости какой-либо функции я не знаю.
Сейчас создам вопрос об этом…
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы