Filter() 함수
Filter
filter 함수는 배열을 순회하면서 조건을 만족하는 요소만을 배열로 반환한다.
const result = 배열.filter(콜백함수(요소, 인덱스, 배열객체));사용법은 먼저 반환된 배열을 담을 변수를 선언하고 순회할 배열에 filter함수를 붙인다. filter함수 안에는 조건을 담고 있는 콜백함수를 넣는다. 이때 매개변수에는 요소(value), 요소의 인덱스(index), 순회하는 배열(Array) 순으로 넣을 수 있다.
간단한 예제를 살펴보자
const arr = [1, 2, 3, 4, 5];
let result = arr.filter(n => {
return n > 2;
});
console.log(result);3, 4, 5
위의 코드에서 콜백함수의 조건은 n > 2, 2보다 큰 수이다. 순회할 배열 [1, 2, 3, 4, 5]에서 2보다 큰 수는 3, 4, 5이므로 result는 [3, 4, 5]가 담기게 된다.
또 filter 함수는 배열을 순회 할 때 빈 요소를 건너뛰기 때문에 반환된 값을 보면 빈 요소가 없다.
const arr = [1,2,,,,3,,,4,5];
let result = arr.filter(n => {
return n;
});
console.log(result);1, 2, 3, 4, 5
또 아래 예제 같은 방식으로도 사용할 수 있다.
const arr = [
{"name":"Jack", "job": "student"},
{"name":"Mery", "job": "Nurse"},
{"name":"Emma", "job": "student"},
{"name":"Danny", "job": "office worker"}
];
let result = arr.filter(val => {
return val.job === "student";
});
console.log(result);s
0: {name: “Jack”, job: “student”}
1: {name: “Emma”, job: “student”}