Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript 객체 배열에서 특정 값만 추출하는 방법

JavaScript에서 객체 배열로 작업하다 보면 전체 배열이 아니라 특정 조건에 맞는 값들만 골라내야 하는 경우가 자주 있습니다. 이럴 때 가장 유용하게 활용할 수 있는 것이 바로 filter() 메서드입니다.

예제 데이터 준비

먼저 다음과 같은 학생 정보를 담은 객체 배열이 있다고 가정해 보겠습니다.

var details = [{
    studentName: "John",
    studentMarks: 92
},
{
    studentName: "David",
    studentMarks: 89
},
{
    studentName: "Mike",
    studentMarks: 98
},
];

filter()로 특정 값 추출하기

객체 배열에서 원하는 값만 가져오려면 filter() 메서드를 사용하면 됩니다. filter()는 콜백 함수의 조건을 만족하는 요소들만 모아 새로운 배열을 반환합니다.

아래 예제에서는 점수가 92점 또는 98점인 학생만 필터링해 보겠습니다.

코드 예시

var details = [{
    studentName: "John",
    studentMarks: 92
},
{
    studentName: "David",
    studentMarks: 89
},
{
    studentName: "Mike",
    studentMarks: 98
},
];
var specificValuesFromArray = details.filter(obj => obj.studentMarks ===
92 || obj.studentMarks === 98);
console.log(specificValuesFromArray)

프로그램 실행 방법

위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 입력합니다.

node fileName.js

여기서는 파일 이름이 demo177.js라고 가정합니다.

실행 결과

위 코드를 실행하면 조건에 맞는 객체만 담긴 새로운 배열이 출력됩니다.

PS C:\Users\Amit\javascript-code> node demo177.js
[
    { studentName: 'John', studentMarks: 92 },
    { studentName: 'Mike', studentMarks: 98 }
]

정리

filter() 메서드는 원본 배열을 변경하지 않고 조건에 일치하는 요소만으로 구성된 새 배열을 반환하기 때문에 안전하고 직관적입니다. OR(||) 연산자 대신 includes()를 활용하면 여러 값을 더 깔끔하게 처리할 수도 있습니다. 예를 들어 details.filter(obj => [92, 98].includes(obj.studentMarks))처럼 작성하면 조건이 많아져도 코드의 가독성을 유지할 수 있습니다.