자바스크립트로 개발을 하다 보면 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()를 사용하는 것이 코드 가독성 면에서 유리합니다.