🔥 filter() 메서드를 사용하여 Array의 모든 거짓 값을 제거하는 방법을 알아보자!
조건문, 반복문 등의 불리언 값이 필요한 곳에서 암묵적인 형 변환을 이용해 특정 값을 불리언 값으로 변환되는 값이다.
false
0
빈 문자열("", '', ``)
null
undefined
NaN
등이 존재한다.
참조 링크 : MDN - 거짓같은 값
https://developer.mozilla.org/ko/docs/Glossary/Falsy
이 거짓 값을 제외하는 새 Array를 만드는 방법을 얘기해본다
Boolean
으로 모든 거짓갑을 필터링 하는 방법이다.
let arr = [0, 1, '', undefined, false, 2, null, 3, NaN];
let result = arr.filter(Boolean);
console.log(result);
// 결과 : [1, 2, 3]
모든 거짓값을 제외하고 반환할 수 있다.
let arr = [0, 1, '', undefined, false, 2, null, 3, NaN];
let result = arr.filter(x => !!x);
console.log(result);
// 결과 : [1, 2, 3]
간단하게 거짓 값만 필터링 할 수 있는 다른 방법이다.
let arr = [0, 1, '', undefined, false, 2, null, 3, NaN];
let result = arr.filter(x => x);
console.log(result);
// 결과 : [1, 2, 3]
이런 방법들이 있지만 0 또한 거짓 값으로 의도적으로 0을 출력하고 싶을 때 이런 방법으로 사용할 수 있다
let arr = [0, 1, '', undefined, false, 2, null, 3, NaN];
let result = arr.filter(x => (x === 0 || x));
console.log(result);
// 결과 : [0, 1, 2, 3]
문제를 풀다가 거짓 값을 제외하고 반환해야하는 문제가 나왔다. 찾아보면서 다른 방법들이 있기에
나중에도 사용할 수 있다고 생각하여 포스트를 작성한다.