filter 메서드
filter 메서드는 배열의 요소 중 특정 조건에 맞는 요소만 남기고 필터링할 수 있게 합니다.
이 메서드는 매개변수로 함수를 받으며, 이 함수는 배열의 각 요소에 대해 실행됩니다.
메서드는 결과로 새 배열을 반환하며, 이 새 배열에는 전달된 함수가 true를 반환한 요소만 포함됩니다.
함수에는 세 개의 매개변수를 전달할 수 있습니다. 이 매개변수들은 필수는 아니지만, 존재할 경우 첫 번째 매개변수에는 배열 요소가 자동으로, 두 번째 매개변수에는 배열에서의 위치(인덱스)가, 세 번째 매개변수에는 배열 자체가 전달됩니다.
구문
let 새 배열 = 배열.filter(function(요소, 인덱스, 배열) {
코드
return true 또는 false
});
예제
배열에서 양수만 남기고 필터링해 봅시다:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(function(elem) {
if (elem >= 0) {
return true;
} else {
return false;
}
});
console.log(res);
코드 실행 결과:
[5, 1, 1, 3, 4]
예제
화살표 함수를 사용하여 코드를 줄여봅시다:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => {
if (elem >= 0) {
return true;
} else {
return false;
}
});
console.log(res);
코드 실행 결과:
[5, 1, 1, 3, 4]
예제
논리 연산자 단축 평가를 사용하여 코드를 줄여봅시다:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => {
return elem >= 0;
});
console.log(res);
코드 실행 결과:
[5, 1, 1, 3, 4]
예제
화살표 함수의 특징을 활용하여 코드를 더 줄여봅시다:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => elem > 0);
console.log(res);
코드 실행 결과:
[5, 1, 1, 3, 4]
예제
필요한 경우 세 번째 매개변수에 배열 자체를 전달할 수 있습니다:
let res = arr.filter(function(elem, index, arr) {
// 여기서 arr 배열에 접근할 수 있습니다.
});