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

JavaScript filter() 메서드로 여러 객체가 포함된 JSON 데이터 필터링하기

여러 객체로 구성된 JSON 데이터를 필터링해야 할 때는 JavaScript의 filter() 메서드를 활용하면 됩니다. filter()는 배열의 각 요소를 순회하면서 주어진 조건을 만족하는 요소만 모아 새로운 배열을 반환하는 배열 내장 메서드입니다.

기본 문법

배열.filter(obj => 조건식);

조건식에는 비교 연산자(예: ==, ===)를 사용해 원하는 값을 가진 객체만 걸러낼 수 있습니다.

예제 코드

아래 예제는 학생 정보가 담긴 JSON 배열에서 이름이 "David"인 학생만 추출하는 코드입니다.

const jsonObject = [
    {
        studentId: 101,
        studentName: "David"
    },
    {
        studentId: 102,
        studentName: "Mike"
    },
    {
        studentId: 103,
        studentName: "David"
    },
    {
        studentId: 104,
        studentName: "Bob"
    }
];

var result = jsonObject.filter(obj => obj.studentName == "David");
console.log(result);

프로그램 실행 방법

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

node 파일이름.js

실행 결과

파일 이름이 demo194.js인 경우, 실행 결과는 아래와 같습니다.

PS C:\Users\Amit\javascript-code> node demo194.js
[
    { studentId: 101, studentName: 'David' },
    { studentId: 103, studentName: 'David' }
]

코드 설명

filter() 메서드는 콜백 함수를 인자로 받으며, 이 콜백 함수는 배열의 각 객체(obj)에 대해 실행됩니다. obj.studentName == "David" 조건이 참인 객체만 결과 배열에 포함되므로, 위 예제에서는 studentId가 101과 103인 두 개의 객체가 반환됩니다.

참고로, 값의 타입까지 엄격하게 비교하려면 == 대신 ===(일치 연산자)를 사용하는 것이 좋습니다. 또한 대소문자를 구분하지 않고 검색하려면 obj.studentName.toLowerCase() === "david"처럼 활용할 수 있습니다.