filter함수는 주어진 조건을 통과하는 요소들을 모아 새로운 배열로 반환한다.
filter 말그대로 조건에 따라 걸러주는 역할을 한다.
함수를 매개변수로 입력하여 테스트에통과 하는 요소들을 새로운 결과값으로 반환 받을 수 있다.
function isBigEnough(value) {
return value >= 10;
}
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered 는 [12, 130, 44]
arr.filter(callback(element[, index[, array]])[, thisArg])
매개변수는 callbackFunction 과 thisArg 입니다.
callbackFunction에는 3개의 매개변수를 사용할 수 있습니다.
element : 요소값
index : 요소의 인덱스
array : 사용되는 배열 객체
thisArg : callback을 실행할 때 this로 사용하는 값.
filter 메서드는 다른 메서드와 조합하여 사용할 수 있습니다.
const numbers = [1, 1, 2, 2, 3, 4, 5];
const newNumbers = numbers.filter((number, index, target) => {
return target.indexOf(number) === index;
});
console.log(newNumbers);
// [1, 2, 3, 4, 5]
순회하는 대상(target)은 변경되지 않는다는 속성을 이용해 filter와 indexOf를 조합하면 배열에 있는 중복을 제거