Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript every() 메서드 완벽 정리 – 배열의 모든 요소 조건 검사하기

JavaScript every() 메서드란?

JavaScript 배열의 every() 메서드는 배열의 모든 요소가 제공된 콜백 함수로 구현된 테스트를 통과하는지 검사합니다. 모든 요소가 조건을 충족하면 true를 반환하고, 단 하나의 요소라도 조건을 벗어나면 즉시 false를 반환합니다. 또한 빈 배열에 대해서는 항상 true를 반환한다는 특징이 있습니다.

every() 메서드의 매개변수

every() 메서드는 다음 두 가지 매개변수를 받습니다.

  • callback − 각 요소를 검사할 함수입니다. 이 함수는 요소 값(element), 인덱스(index), 원본 배열(array)이라는 세 가지 인수를 전달받습니다.
  • thisObject − 콜백 함수를 실행할 때 this로 사용할 객체입니다. 생략하면 undefined가 사용됩니다.

예제 코드

다음 예제를 실행하면 every() 메서드의 동작 방식을 직접 확인할 수 있습니다. 아래 코드는 배열의 모든 요소가 10 이상인지 판별하며, 구형 브라우저 호환성을 위한 폴리필(polyfill)도 함께 포함되어 있습니다.

<html>
<head>
<title>JavaScript Array every Method</title>
</head>

<body>
<script>
if (!Array.prototype.every) {
Array.prototype.every = function(fun /*, thisp*/) {
var len = this.length;

if (typeof fun != "function")
throw new TypeError();
var thisp = arguments[1];

for (var i = 0; i < len; i++) {
if (i in this && !fun.call(thisp, this[i], i, this))
return false;
}
return true;
};
}
function isBigEnough(element, index, array) {
return (element >= 10);
}
var passed = [12, 5, 8, 130, 44].every(isBigEnough);
document.write("First Test Value : " + passed);
passed = [12, 54, 18, 130, 44].every(isBigEnough);
document.write("<br>Second Test Value : " + passed);
</script>
</body>
</html>

실행 결과 해설

첫 번째 테스트에 사용된 배열 [12, 5, 8, 130, 44]에는 10보다 작은 요소인 5와 8이 포함되어 있으므로 결과는 false입니다. 반면 두 번째 배열 [12, 54, 18, 130, 44]의 모든 요소가 10 이상이므로 결과는 true로 출력됩니다.

참고로 최신 브라우저와 Node.js 환경에서는 every() 메서드가 기본적으로 지원되기 때문에, 위 예제의 폴리필 부분 없이 곧바로 사용할 수 있습니다.