2014-09-18 2 views
1

Я должен выполнить следующие задания в Javascript:Присваивание массива Javascript

data.field[0].myArray = array[0]; 
data.field[1].myArray = array[1]; 
data.field[2].myArray = array[2]; 
... 

Конечно, я мог бы использовать цикл:

for (i= 0; i< array.length; i++) { 
    data.field[i].myArray = array[i]; 
} 

Но мне интересно, есть ли другой способ сделать это в чистом виде.

Большое спасибо заранее

+0

В чем проблема с итерацией? –

+2

Ничего страшного, я только хотел узнать, есть ли более «изящный» способ сделать это – Genzotto

+0

Я не думаю, что есть какой-либо способ сделать это без повторения, не имеет смысла также иметь такой путь! –

ответ

0

Вы можете использовать array.map(), но это все еще переборе массива:

array.map(function(item, index){ 
    data.field[index].myArray = item 
}); 

Однако, вы можете (должны) убедиться data.field[i] на самом деле существует:

array.map(function(item, index){ 
    data.field[index] = data.field[index] || {}; 
    data.field[index].myArray = item 
}); 

Пожалуйста, обратите внимание, что, array.map()doesn't work in IE 8 or lower. Вы можете use a polyfill, если вам нужно поддерживать более низкие версии IE.

+1

@ Захера: Это то, что я сказал. – Cerbrus

+0

Итак, @Genzotto, отвечает ли это на ваш вопрос? – Cerbrus

Смежные вопросы