как обрабатывается undefined при зацикливании [дубликат]
Dec 26 2020
[1, 3, 4, 5, 5, undefined, 4, 3, 4].map((item) => {
if (item) {
return item
}
})
Результатом приведенного выше кода является

Почему undefined
тоже возвращается, не должен ли его останавливать if
цикл?
Ответы
1 ASDFGerte Dec 26 2020 at 16:32
Ваша функция карты ничего не возвращает явно, если элемент является ложным, следовательно, он возвращается undefined
(по умолчанию).
Как указано в другом комментарии, вы, вероятно, ищете Array.prototype.filter:
console.log([1,3,4,5,5,undefined,4,3,4].filter((item)=>{
if(item){
return item;
}
}));
Обратите внимание , что выше немного многословный, .filter(x => x)
будет достаточно, filter
звонки ToBoolean
по возвращению в любом случае. Тем не менее, он по-прежнему будет отфильтровывать любые ложные значения, например 0.