JavaScript Array.prototype.every() 메서드란?
JavaScript의 every() 메서드는 배열의 모든 요소가 제공된 콜백 함수로 구현한 테스트 조건을 통과하는지 검사합니다. 모든 요소가 조건을 충족하면 true를 반환하고, 단 하나의 요소라도 조건을 벗어나면 즉시 false를 반환합니다.
이 메서드는 배열을 순회하며 각 요소에 콜백 함수를 실행하는데, 결과가 false로 판정되는 순간 순회를 중단하기 때문에 성능 면에서도 효율적입니다. 또한 원본 배열을 변경하지 않는 비파괴(non-mutating) 메서드라는 점도 장점입니다.
기본 문법
arr.every(callback(element, index, array))
- element: 현재 처리 중인 배열의 요소
- index (선택): 현재 요소의 인덱스
- array (선택): every()를 호출한 배열 자체
사용 예제
다음 예제에서는 every() 메서드를 사용해 급여 배열의 모든 요소가 기준 금액(10,000) 이상인지 검사하고, 그 결과를 불리언(true/false) 값으로 화면에 출력합니다.
<html>
<body>
<p id="every1"></p>
<p id="every2"></p>
<script>
var wages = [15000, 33000, 19000, 54000];
var salary = [9000, 33000, 19000, 54000];
function checkSal(wage) {
return wage >= 10000;
}
document.getElementById("every1").innerHTML = wages.every(checkSal);
document.getElementById("every2").innerHTML = salary.every(checkSal);
</script>
</body>
</html>
실행 결과
true false
wages 배열의 모든 값(15000, 33000, 19000, 54000)은 기준 금액 10,000 이상이므로 true가 반환됩니다. 반면 salary 배열에는 조건을 벗어나는 값(9000)이 포함되어 있어 false가 반환됩니다.
참고 사항
- 빈 배열에 대해 every()를 호출하면 조건과 관계없이 항상 true를 반환합니다.
- 요소 중 하나라도 조건을 만족하는지만 확인하려면 some() 메서드를 사용하는 것이 더 적합합니다.
- every()는 ES5부터 표준으로 지원되며, 대부분의 최신 브라우저와 Node.js 환경에서 안전하게 사용할 수 있습니다.