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

자바스크립트에서는 배열(Array)을 사용하여 데이터를 저장하고 관리할 수 있습니다. 배열에는 여러 가지 데이터 유형(문자열, 숫자, 객체 등)을 저장할 수 있으며, 배열의 요소(element)를 특정 기준으로 검색하는 방법이 필요할 때가 있습니다. 이번 블로그 포스트에서는 자바스크립트에서 배열의 요소를 특정 기준으로 찾는 방법을 알아보겠습니다.

1. indexOf() 메서드를 사용하여 값 찾기

자바스크립트 배열에서 특정 값을 찾는 가장 간단한 방법은 indexOf() 메서드를 사용하는 것입니다. indexOf() 메서드는 배열에서 지정된 값과 일치하는 첫 번째 요소의 인덱스를 반환합니다. 일치하는 값이 없을 경우 -1을 반환합니다.

const arr = [1, 2, 3, 4, 5];

console.log(arr.indexOf(3)); // 2
console.log(arr.indexOf(6)); // -1

위의 예제에서는 배열 arr에서 3과 일치하는 첫 번째 요소의 인덱스를 반환합니다. 배열에 6과 일치하는 값이 없으므로 -1을 반환합니다.

2. find() 메서드를 사용하여 조건에 맞는 요소 찾기

ES6부터는 find() 메서드를 사용하여 조건에 맞는 요소를 찾을 수 있습니다. find() 메서드는 배열에서 지정된 콜백 함수를 사용하여 조건을 검색하고, 첫 번째로 조건에 맞는 요소를 반환합니다. 일치하는 요소가 없을 경우 undefined를 반환합니다.

const arr = [ 
  { name: "Apple", color: "red" },
  { name: "Banana", color: "yellow" },
  { name: "Orange", color: "orange" }
];

const result = arr.find((item) => item.color === "red");

console.log(result); // { name: "Apple", color: "red" }

위의 예제에서는 배열 arr에서 color 속성이 “red”인 첫 번째 객체를 반환합니다. 조건에 맞는 객체를 찾지 못할 경우 undefined를 반환합니다.

3. filter() 메서드를 사용하여 조건에 맞는 모든 요소 찾기

filter() 메서드는 배열에서 조건에 맞는 모든 요소를 찾아 새로운 배열로 반환합니다. filter() 메서드는 지정된 콜백 함수를 사용하여 조건을 검색하고, 조건에 맞는 모든 요소를 반환합니다. 일치하는 요소가 없을 경우 빈 배열을 반환합니다.

const arr = [ 
  { name: "Apple", color: "red" },
  { name: "Banana", color: "yellow" },
  { name: "Orange", color: "orange" },
  { name: "Strawberry", color: "red" }
];

const result = arr.filter((item) => item.color === "red");

console.log(result);
// [
//   { name: "Apple", color: "red" },
//   { name: "Strawberry", color: "red" }
// ]

위의 예제에서는 배열 arr에서 color 속성이 “red”인 모든 객체를 새로운 배열로 반환합니다.

4. findIndex() 메서드를 사용하여 조건에 맞는 첫 번째 요소의 인덱스 찾기

findIndex() 메서드는 배열에서 지정된 콜백 함수를 사용하여 조건을 검색하고, 첫 번째로 조건에 맞는 요소의 인덱스를 반환합니다. 일치하는 요소가 없을 경우 -1을 반환합니다.

const arr = [1, 2, 3, 4, 5];

const index = arr.findIndex((item) => item > 3);

console.log(index); // 3

위의 예제에서는 배열 arr에서 값이 3보다 큰 첫 번째 요소의 인덱스를 반환합니다.

자바스크립트에서 배열의 요소를 특정 기준으로 찾는 방법에 대해 알아보았습니다. indexOf(), find(), filter(), findIndex() 메서드는 배열을 다룰 때 유용하게 사용할 수 있는 메서드입니다. 이러한 메서드를 적절히 활용하여 원하는 조건에 맞는 배열의 요소를 찾을 수 있습니다.