every()
메서드는 배열 안의 모든 요소가 주어진 판별 함수를 통과하는지 테스트합니다. Boolean 값을 리턴합니다.
const isBelowThreshold = (currentValue) => currentValue < 40;
const array1 = [1, 30, 39, 29, 10, 13];
console.log(array1.every(inBelowThreshold))
//RESULT
true
//화살표 함수
every((element) => {...} )
every((element, index) => {...} )
every((element, index, array) => {...} )
//콜백 함수
every(callbackFn)
every(callbackFn, thisArg)
//인라인 콜백 함수
every(function callbackFn(element) { ...} )
every(function callbackFn(element, index) {...} )
every(function callbackFn(element, index, array) {...})
every(function callbackFn(element, index, array) {...}, thisArg )
callbackFn 각 요소를 시험할 함수, 다음 세가지 인수를 받습니다.
element 배열에서 처리되는 현재 요소
index [Optional] 처리할 현재 요소의 인덱스]
array [Optional] every
를 호출한 배열
thisArg [Optional] callbackFn
을 실행할 때, this
로 사용하는 값
callbackFn
이 모든 배열 요소에 대해 참! 인값을 반환하는 경우 true
, 그 외엔 false
every
는 callback
이 조건에 안 맞은 상태(=false)를 반환하는 요소를 찾을 때까지 배열에 있는 각 요소에 대해 한 번씩 callbackFn
함수를 실행합니다. 해당하는 요소를 발견한 경우 every
는 즉시 false
를 반환합니다. 그렇지 않으면 모든 값에 참(=true)을 반환하면 true
를 반환합니다.
참고 : 빈 배열에서 호출하면 무조건
true
를 반환합니다.
할당한 값이 있는 배열의 인덱스에서만 callbackFn
을 호출합니다. 삭제했거나 값을 할당한 적이 없는 인덱스에서는 호출하지 않습니다.
callbackFn
은 요소의 값, 해당 요소의 인덱스 및 순회하고 있는 배열 세가지 인수와 함게 호출됩니다.
thisArg
매개변수를 every
에 제공한 경우 callbackFn
의 this
로 사용됩니다. 그 외엔 undefined 값을 사용합니다. 최종적으로 callbackFn
이 볼 수 있는 this
의 값은 함수가 볼 수 있는 this
를 결정하는 평소 규칙을 따릅니다.
every
는 호출한 배열을 변형하지 않습니다.
every
가 처리하는 요소의 범위는 callbackFn
의 첫 호출 전에 설정됩니다. 그 이후로 재호출이 일어나기 전까지 변경되지않습니다. (map()이랑 똑같네요)
every
는 (이산)수학에서 전칭정량자(=quantifier, 한정자)처럼 행동합니다. 특히, 빈 배열에 대해서는 true
를 반환합니다.