Страницы

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

пятница, 19 апреля 2019 г.

map и undefined

Такой код
x = new Array(5); y = x.map((item) => item = 7); console.log(y);
ничего не сделает(выведет 5 undefined);
не если задать массив через цикл то все ОК;
в чем проблема?


Ответ

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);

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

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