filter() 함수는 배열의 특정 조건을 충족하는 요소의 새 배열을 반환합니다.
이 함수는 콜백 함수를 인수로 사용하고 배열의 각 요소에 대해 콜백 함수를 실행하며 콜백 함수가 새 배열에 true를 반환하는 요소만 포함합니다.
filter() 함수는 원래 배열을 변경하지 않고 새 배열을 반환하므로 함수를 호출한 후에도 원래 배열이 그대로 유지됩니다.
arr.filter(callback(element(, index(, array)))(, thisArg))
- 콜백: 배열의 각 요소에 대해 수행되는 함수입니다.
이 함수는 현재 처리된 요소를 요소 매개변수로 받습니다.
인덱스는 현재 요소의 인덱스인 두 번째 매개변수로 전달될 수 있습니다.
마지막으로 array 매개변수는 filter() 함수가 호출된 배열 자체를 가리킵니다.
이 매개변수는 선택사항입니다. - thisArg(선택 사항): 콜백 함수 내에서 this로 사용할 객체입니다.
이 매개변수는 선택사항입니다.
const numbers = (1, 2, 3, 4, 5, 6);
const evenNumbers = numbers.filter((number) => number % 2 === 0);
console.log(evenNumbers); // (2, 4, 6)
위의 코드는 filter() 함수를 사용하여 배열 번호에서 짝수만 추출하고 결과를 새 배열 evenNumbers에 할당합니다.
이 시점에서 콜백 함수는 숫자 매개변수를 받고 요소가 짝수인지 여부를 결정합니다.
number % 2 === 0은 number가 2로 나누어 떨어지는지 테스트하는 조건식입니다.
이 조건식이 true인 요소만 evenNumbers 배열에 포함됩니다.