JavaScript
arr.filter(callbackFn[, thisArg])
arr: filter() 함수를 적용할 배열입니다.
callbackFn
배열의 각 요소를 처리하는 콜백 함수입니다. 콜백 함수는 배열의 요소를 전달 인자로 받고, 결과로 true 또는 false를 반환합니다. true를 반환하면 해당 요소가 필터링된 배열에 포함되고, false를 반환하면 해당 요소가 필터링된 배열에 포함되지 않습니다.
콜백 함수의 매개변수:
callbackFn(element[, index[, array]])
element: 현재 처리 중인 배열 요소
index: 옵션. 현재 처리 중인 배열 요소의 인덱스
array: 옵션. filter()를 호출한 배열 자체
thisArg : 옵션. callbackFn 함수 내부에서 사용할 this 값으로 사용할 값입니다.
자바스크립트 코드
console.log("==원본==");
const arr = [10, 20, 30, 40, 50];
console.log(arr);
console.log("==Filter(index)==");
const afterFilter = arr.filter((et, index) => index != 2);
console.log(afterFilter);
console.log("==Filter(et)==");
const afterFilter2 = arr.filter((et, index) => et != 30);
console.log(afterFilter2);
실행 Consol창
"==원본=="
// [object Array] (5)
[10,20,30,40,50]
"==Filter(index)=="
// [object Array] (4)
[10,20,40,50]
"==Filter(et)=="
// [object Array] (4)
[10,20,40,50]
Filter를 이용한 중복제거 예시
const numbers = [1, 2, 2, 3, 4, 4, 5];
const uniqueNumbers = numbers.filter((element, index, arr) => {
// 현재 요소가 이전에 등장하지 않은 경우만 true를 반환
return arr.indexOf(element) === index;
});
console.log(uniqueNumbers); // 출력: [1, 2, 3, 4, 5]
2차배열에서의 Filter 예시
// 2차원 배열 생성
const students = [
["Alice", 25],
["Bob", 30],
["Charlie", 22],
["David", 35]
];
// 나이가 30 이상인 학생들만 필터링
const filteredStudents = students.filter(student => {
// student 배열의 두 번째 요소(나이)가 30 이상인 경우만 true 반환
return student[1] >= 30;
});
console.log(filteredStudents); // 출력: [["Bob", 30], ["David", 35]]