Array.some() 메서드란?
Array.some() 메서드는 배열의 요소 중 하나라도 사용자가 제공한 콜백 함수로 구현된 테스트를 통과하는지 확인하는 자바스크립트 내장 메서드입니다.
Array.every()와의 차이점을 이해하는 것이 중요합니다. every()는 모든 요소가 테스트를 통과해야만 true를 반환하는 반면, some()은 단 하나의 요소라도 테스트를 통과하면 즉시 true를 반환합니다. 반대로 모든 요소가 테스트에 실패할 경우에만 false를 반환합니다.
기본 구문
arr.some(callback(element[, index[, array]]))
콜백 함수는 각 요소에 대해 호출되며, 다음과 같은 인자를 받을 수 있습니다.
- element: 현재 처리 중인 배열 요소 (필수)
- index: 현재 요소의 인덱스 (선택)
- array:
some()을 호출한 원본 배열 (선택)
또한 some()은 조건을 만족하는 요소를 발견하는 즉시 순회를 중단하므로, 큰 배열에서 성능 면에서 유리합니다. 원본 배열은 변경되지 않습니다.
실전 예제
다음 예제에서 Array.some()은 두 개의 배열(wages, salary)에 대해 급여 요소 중 하나라도 기준 금액(15000) 이상인지 확인하고, 그 결과를 Boolean 값(true, false)으로 출력합니다.
<html>
<body>
<p id="some1"></p>
<p id="some2"></p>
<script>
var wages = [33000, 10000, 1000, 20000];
var salary = [3000, 9000, 14000, 10000];
function checkSal(wage) {
return wage >= 15000;
}
document.getElementById("some1").innerHTML = wages.some(checkSal);
document.getElementById("some2").innerHTML = salary.some(checkSal);
</script>
</body>
</html>실행 결과
true false
결과 분석
wages 배열에는 33000과 20000이라는 15000 이상의 값이 포함되어 있으므로 true가 출력됩니다. 반면 salary 배열의 모든 요소는 15000 미만이므로 false가 출력됩니다.
정리
Array.some()은 배열에 특정 조건을 만족하는 요소가 최소 하나라도 존재하는지 빠르게 확인할 때 유용한 메서드입니다. 유효성 검사, 특정 값의 존재 여부 확인 등 다양한 상황에서 활용할 수 있으며, every()와 함께 사용하면 배열 데이터 검증 로직을 더욱 견고하게 작성할 수 있습니다.