JavaScript에서 배열 안에서 특정 조건에 맞는 레코드 하나만 가져오고 싶다면 find() 메서드를 사용하는 것이 가장 간단한 방법입니다.
find() 메서드란?
find() 메서드는 배열의 각 요소를 순회하면서 콜백 함수의 조건을 만족하는 첫 번째 요소를 반환합니다. 조건을 만족하는 요소가 없으면 undefined를 반환합니다. 전체 목록이 아닌 단일 레코드가 필요할 때 특히 유용합니다.
예제 코드
학생 객체 배열에서 studentId가 102인 학생을 찾는 코드입니다.
var obj = [
{
studentId: 101,
studentName: "John"
},
{
studentId: 102,
studentName: "Bob"
},
{
studentId: 103,
studentName: "David"
}
];
const result = obj.find((o) => {
return o.studentId === 102;
});
console.log(result);프로그램 실행하기
위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 입력합니다. 파일 이름은 본인이 저장한 파일명으로 지정하면 됩니다. 여기서는 demo315.js를 사용했습니다.
node fileName.js
실행 결과
위 코드를 실행하면 조건(studentId === 102)에 일치하는 첫 번째 객체만 출력됩니다.
PS C:\Users\Amit\javascript-code> node demo315.js
{ studentId: 102, studentName: 'Bob' }핵심 정리
- find()는 조건을 만족하는 첫 번째 요소 하나만 반환합니다.
- 조건에 맞는 요소가 여러 개여도 나머지는 무시됩니다.
- 일치하는 요소가 없으면
undefined가 반환되므로, 결과 사용 전 존재 여부를 확인하는 것이 좋습니다. - 조건에 맞는 모든 요소가 필요하다면 filter() 메서드를 사용하세요.