자바스크립트 배열의 요소를 특정 기준으로 항목 검색하기

자바스크립트에서 배열은 데이터를 저장하고 조작하는 데 유용한 자료구조입니다. 배열은 여러 개의 요소로 구성되어 있고, 이러한 요소들은 인덱스를 통해 접근할 수 있습니다. 때로는 특정 기준에 맞는 요소를 검색해야 할 때도 있는데, 이를 위해 자바스크립트에서는 다양한 검색 기능을 제공합니다.

1. indexOf 메서드를 사용한 검색

indexOf 메서드는 배열에서 특정 요소의 인덱스를 반환합니다. 예를 들어, 다음과 같은 배열이 있다고 가정해 봅시다.

const fruits = ['apple', 'banana', 'orange', 'apple', 'grape'];

만약 ‘apple’이라는 요소를 검색하고 싶다면, indexOf 메서드를 사용할 수 있습니다.

const index = fruits.indexOf('apple');
console.log(index); // 0

indexOf 메서드는 첫 번째로 일치하는 요소의 인덱스를 반환합니다. 만약 일치하는 요소가 없다면 -1을 반환합니다.

2. find 메서드를 사용한 검색

find 메서드는 배열에서 특정 조건을 만족하는 첫 번째 요소를 반환합니다. 예를 들어, 다음과 같은 배열이 있다고 가정해 봅시다.

const students = [
  { name: 'Alice', age: 20 },
  { name: 'Bob', age: 22 },
  { name: 'Charlie', age: 25 },
];

만약 나이가 22인 학생을 검색하고 싶다면, find 메서드를 사용할 수 있습니다.

const student = students.find(student => student.age === 22);
console.log(student); // { name: 'Bob', age: 22 }

find 메서드는 해당 조건을 만족하는 요소를 반환하며, 일치하는 요소가 없다면 undefined를 반환합니다.

3. filter 메서드를 사용한 검색

filter 메서드는 배열에서 특정 조건을 만족하는 모든 요소를 반환합니다. 예를 들어, 다음과 같은 배열이 있다고 가정해 봅시다.

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

만약 짝수를 검색하고 싶다면, filter 메서드를 사용할 수 있습니다.

const evenNumbers = numbers.filter(number => number % 2 === 0);
console.log(evenNumbers); // [2, 4, 6, 8, 10]

filter 메서드는 해당 조건을 만족하는 모든 요소를 배열로 반환합니다. 일치하는 요소가 없다면 빈 배열을 반환합니다.

마무리

자바스크립트 배열에서 특정 기준으로 항목을 검색하는 다양한 방법을 살펴보았습니다. indexOf, find, filter 메서드를 사용하여 사용자가 원하는 요소를 효과적으로 찾을 수 있습니다. 각 메서드의 특징을 이해하고 적절히 활용하여 자바스크립트 프로그래밍을 더욱 효율적으로 개발할 수 있습니다.