JavaScript에서 배열 요소 내부에 false 값이 포함되어 있는지 확인해야 하는 경우가 종종 있습니다. 예를 들어 고객 정보 객체 배열에서 특정 조건(결혼 여부 등)이 거짓인 항목이 존재하는지 검사할 때 유용합니다.
이럴 때 Object.values() 메서드와 some() 메서드를 함께 사용하면 간단하게 확인할 수 있습니다.
Object.values()와 some()의 역할
- Object.values(): 객체가 가진 값들을 배열 형태로 반환합니다.
- some(): 배열의 요소 중 하나라도 조건을 만족하면 true를, 그렇지 않으면 false를 반환합니다.
예제 코드
const details = [
{
customerDetails: [
{
isMarried: true
},
{
isMarried: true
}
]
},
{
customerDetails: [
{
isMarried: true
},
{
isMarried: true
}
]
}
]
const isNotMarried = Object.values(details)
.some(({customerDetails}) => customerDetails.some(({isMarried}) => !isMarried));
console.log(isNotMarried);프로그램 실행 방법
위 프로그램을 실행하려면 다음 명령어를 사용합니다.
node fileName.js
여기서 파일 이름은 demo75.js입니다.
출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
PS C:\Users\Amit\JavaScript-code> node demo75.js false
코드 설명
위 예제에서 모든 고객의 isMarried 값이 true이기 때문에, 내부 some()은 false 값을 찾지 못하고 최종적으로 false를 반환합니다. 만약 배열 중 하나라도 isMarried: false인 객체가 있다면 결과는 true가 됩니다.
이처럼 Object.values()로 값을 추출한 뒤 some()으로 조건을 검사하면, 중첩된 객체 구조 안에서도 false 값의 존재 여부를 손쉽게 판별할 수 있습니다.