Страницы

Поиск по вопросам

вторник, 28 мая 2019 г.

Цикл добавляет только последний проход и затирает предыдущие

Есть два массива
dataArr = [[1,2,3], [4,5,6], [7,8,9]]; colors = ['red','green','blue'];
И функция, в которую они идут в качестве аргументов.
function makeDataArrays(dataObj,colors) { var a = {}; var b = []; for (var i=0; inewArr = makeDataArrays(dataArr, colors);
В итоге функция вернет массив объектов. Все объекты будут одинаковы и равны последней итерации.
Почему? Как исправить?


Ответ

Объекты в массиве у вас не просто равны, это - один и тот же объект
Создавайте новый объект на каждой итерации - и будет вам счастье

Комментариев нет:

Отправить комментарий