배열 필터링하기

자바스크립트에서 배열을 필터링하는 방법에 대해 알아보겠습니다. 배열 필터링은 배열의 요소 중 특정 조건을 만족하는 요소들만 선택하여 새로운 배열을 만드는 작업을 말합니다.

filter() 메소드 사용하기

배열을 필터링하는 가장 일반적인 방법은 filter() 메소드를 사용하는 것입니다. filter() 메소드는 배열의 각 요소에 대해 주어진 함수를 실행하고, 함수가 true를 반환하는 요소들로 이루어진 새로운 배열을 반환합니다.

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

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

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

위의 예제에서는 numbers 배열에서 짝수인 요소들만 필터링하여 evenNumbers 배열을 생성합니다. filter() 메소드의 인자로는 화살표 함수를 사용하였고, number % 2 === 0 조건을 만족하는 요소들을 선택하였습니다.

조건 함수 정의하기

filter() 메소드를 사용할 때, 조건 함수를 정의하여 요소의 선택 여부를 결정할 수도 있습니다.

const people = [
  { name: 'Alice', age: 25 },
  { name: 'Bob', age: 30 },
  { name: 'Charlie', age: 20 },
  { name: 'David', age: 35 }
];

const adults = people.filter(person => person.age >= 18);

console.log(adults);

위의 예제에서는 people 배열에서 age가 18 이상인 사람들을 선택하여 adults 배열을 만듭니다. filter() 메소드의 인자로 넘긴 함수는 person.age >= 18 조건을 만족하는 요소들을 반환합니다.

결과

필터링된 결과는 filter() 메소드를 호출한 배열과는 독립적입니다. 그래서 필터링된 결과를 변수에 할당하거나 다른 작업에 사용할 수 있습니다.

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

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

console.log(oddNumbers); // [1, 3, 5]
console.log(numbers); // [1, 2, 3, 4, 5, 6]

filter() 메소드를 사용하면 주어진 조건을 기반으로 배열을 필터링할 수 있습니다. 이를 통해 원하는 조건에 맞는 요소들로 이루어진 새로운 배열을 만들 수 있습니다.

참고 자료