#javascript #массивы
Такой код x = new Array(5); y = x.map((item) => item = 7); console.log(y); ничего не сделает(выведет 5 undefined); не если задать массив через цикл то все ОК; в чем проблема?
Ответы
Ответ 1
map обходит массив только по существующим элементам. В данном случае будет создан массив с 5 дырками. Поэтому применение map здесь ничего не даст. Кроме того, для заполнения массива, map использовать неверно. Вместо него, лучше использовать fill x = new Array(5); x.fill(7); console.log(x); Если же заполнять массив нужно не константным объектом, а зависящим, например, от индекса, можно воспользоваться функцией Array.from x = Array.from({ length: 5 }, (el, index) => index); console.log(x);Ответ 2
Вообще-то во всём... Присваивание аргументу функции ничего в массиве изменить в принципе не может. На индексах, отсутствующих в массиве map не срабатывает. А у тебя все такие. Надо использовать fill, а не map: console.log(Array(5).fill(7)) Дело не в undefined: console.log([undefined, undefined, undefined, undefined, undefined].map(x => 7))
Комментариев нет:
Отправить комментарий