как обрабатывается 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.