JavaScript에서 배열 안에 특정 객체가 존재하는지 확인해야 하는 경우가 자주 있습니다. 가장 기본적인 방법은 for 반복문을 사용해 배열의 각 요소를 순회하면서 객체의 속성 값을 비교하는 것입니다. 아래 예제에서는 일치하는 객체를 찾으면 true를 출력하고 반복을 종료합니다.
예제 코드
<!DOCTYPE html>
<html>
<body>
<script>
var book = [{
Name: 'Java',
ID: '001'
}, {
Name: 'Ruby',
ID: '002'
}];
var result = false;
for (var i = 0; i < book.length; i++) {
if (book[i].Name == 'Ruby') {
result = true;
document.write(result.toString());
break;
}
}
</script>
</body>
</html>실행 결과
true
더 간결한 방법: some() 메서드 활용하기
위 방식도 잘 작동하지만, 최신 JavaScript에서는 some() 메서드를 사용하면 훨씬 간결하게 처리할 수 있습니다. some()은 조건을 만족하는 요소가 하나라도 있으면 true를 반환하고, 없으면 false를 반환합니다.
var result = book.some(item => item.Name === 'Ruby'); console.log(result); // true
객체 자체를 찾고 싶다면: find() 메서드
단순히 존재 여부가 아니라 해당 객체 전체를 얻고 싶다면 find() 메서드를 사용하는 것이 좋습니다.
var found = book.find(item => item.Name === 'Ruby');
console.log(found); // { Name: 'Ruby', ID: '002' }이처럼 상황에 따라 for 루프, some(), find() 등을 적절히 선택하면 배열 내 객체 탐색을 효율적으로 수행할 수 있습니다.