루핑하는 동안 정의되지 않은 처리 방법 [중복]

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과 같은 잘못된 값을 필터링합니다 .