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

자바스크립트에서 JSON 객체 배열에 특정 값이 존재하는지 확인하는 방법

자바스크립트로 개발을 하다 보면 JSON 객체 배열 안에 원하는 값이 존재하는지 확인해야 하는 경우가 자주 있습니다. 이 글에서는 for 반복문을 활용해 JSON 객체 배열에서 특정 값을 찾는 가장 기본적인 방법을 소개합니다.

예제 데이터 준비

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

var apiJSONObject =
[
    {subjectName:"MySQL"},
    {subjectName:"Java"},
    {subjectName:"JavaScript"},
    {subjectName:"MongoDB"}
]

이 배열 안에 "JavaScript"라는 값이 존재하는지 확인해 보겠습니다.

값 존재 여부 확인하기

배열의 길이만큼 반복문을 돌면서 각 객체의 subjectName 속성과 찾고자 하는 값을 비교하면 됩니다. 일치하는 값을 발견하면 메시지를 출력하고 break로 반복문을 종료해 불필요한 순회를 막습니다.

var apiJSONObject =
[
    {subjectName:"MySQL"},
    {subjectName:"Java"},
    {subjectName:"JavaScript"},
    {subjectName:"MongoDB"}
]
for(var i=0;i<apiJSONObject.length;i++){
    if(apiJSONObject[i].subjectName=="JavaScript"){
        console.log("JSON 객체에서 검색 결과를 찾았습니다.");
        break;
    }
}

프로그램 실행하기

위 코드를 작성한 후 Node.js 환경에서 다음 명령어로 실행할 수 있습니다.

node fileName.js

여기서는 파일 이름을 demo117.js로 저장했다고 가정합니다.

실행 결과

프로그램을 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

PS C:\Users\Amit\JavaScript-code> node demo117.js
JSON 객체에서 검색 결과를 찾았습니다.

추가 팁: 더 간결한 방법들

for 반복문 외에도 최신 자바스크립트에서는 더 간결한 문법으로 동일한 작업을 수행할 수 있습니다.

  • some() 메서드: 조건을 만족하는 요소가 하나라도 있으면 true를 반환합니다.
    const exists = apiJSONObject.some(item => item.subjectName === "JavaScript");
  • find() 메서드: 조건에 맞는 첫 번째 요소 자체를 반환하며, 없으면 undefined를 반환합니다.
  • findIndex() 메서드: 조건에 맞는 요소의 인덱스를 반환하므로 위치 정보도 함께 얻을 수 있습니다.

간단한 존재 여부 확인이라면 some()을, 해당 객체를 함께 사용해야 한다면 find()를 사용하는 것이 코드 가독성 면에서 유리합니다.