JavaScript의 Array.filter 함수는 배열의 요소 중 특정 조건을 만족하는 요소만 추출하여 새로운 배열을 생성하는 함수입니다. 이 함수는 배열의 각 요소에 대해 주어진 콜백 함수를 실행하고, 콜백 함수의 반환 값이 true인 요소만 모아 새로운 배열을 만듭니다.

예를 들어, 다음과 같은 배열이 있다고 가정해봅시다.

const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9];

이 배열에서 짝수만 추출하고 싶다면, 다음과 같이 Array.filter 함수를 사용할 수 있습니다.

const evenNumbers = numbers.filter(function (number) {
  return number % 2 === 0;
});

console.log(evenNumbers); // [2, 4, 6, 8]

또는 화살표 함수를 사용하여 더 간결하게 작성할 수도 있습니다.

const evenNumbers = numbers.filter(number => number % 2 === 0);

console.log(evenNumbers); // [2, 4, 6, 8]

이처럼 Array.filter 함수를 사용하면 원하는 조건을 만족하는 요소만 추출하여 새로운 배열을 생성할 수 있습니다. 이 과정에서 원래의 배열은 변경되지 않습니다.

더 많은 예제

예제 1: 배열에서 5보다 큰 숫자만 추출하기

const numbers = [1, 5, 10, 15, 20];
const greaterThanFive = numbers.filter(number => number > 5);

console.log(greaterThanFive); // [10, 15, 20]

예제 2: 배열에서 길이가 4 이상인 문자열만 추출하기

const words = ["apple", "banana", "cherry", "date", "fig", "grape"];
const longerThanFour = words.filter(word => word.length >= 4);

console.log(longerThanFour); // ["apple", "banana", "cherry", "grape"]

예제 3: 객체 배열에서 나이가 18 이상인 사용자만 추출하기

const users = [
  { name: "Kim", age: 16 },
  { name: "Lee", age: 25 },
  { name: "Park", age: 30 },
  { name: "Choi", age: 14 },
  { name: "Jeon", age: 19 },
];

const adults = users.filter(user => user.age >= 18);

console.log(adults);
// [
//   { name: "Lee", age: 25 },
//   { name: "Park", age: 30 },
//   { name: "Jeon", age: 19 },
// ]

이와 같이 Array.filter 함수는 다양한 조건에 맞는 요소만 새로운 배열로 생성하는 데 사용할 수 있습니다. 이 함수를 활용하면 복잡한 반복문 없이도 간결하게 원하는 조건을 만족하는 요소를 추출할 수 있습니다.