javascript every, some 메소드에 대해 알아보자. 자바스크립트 every, some 메소드
고차함수의 마지막 every, some 함수에 대해서 알아보겠습니다.
every 함수는 배열의 모든 요소가 callbackFunction 에서 true를 리턴해야 true를 리턴,
하나라도 false가 떨어지면 false를 리턴합니다.
some 함수는 배열의 요소 중 하나라도 callbackFunction에서 true를 리턴하면 true를 리턴 합니다.
그럼 두 함수의 구분을 보도록 하죠.
array.every(callbackFunction(currentValue, index, array), thisArg)
array.some(callbackFunction(currentValue, index, array), thisArg)
구문은 filter, map과 같습니다.
callbackFunction, thisArg 두개의 매개변수를 갖고,
callbackFunction은
currentValue : 배열의 현재 값
index : 배열의 현재 값의 인덱스
array : 현재 배열
thisArg : this값으로 활용될 것 입니다.
그럼 예를 바로 보도록 하겠습니다.
<script type="text/javascript">
(function test(){
var testArray = [1,2,3,4,5];
var resultArray = [];
function underThree(value){
return (value<3) ? true : false;
}
function underTen(value){
return (value<10) ? true : false;
}
resultArray.push(testArray.every(underThree));
resultArray.push(testArray.every(underTen));
resultArray.push(testArray.some(underThree));
resultArray.push(testArray.some(underTen));
})();
</script>
테스트 배열이 존재하고 그에 따른 결과를 받을 배열을 생성했습니다.
그리고 3이하일 경우 true, 아닐 경우 false를 리턴하는 함수와
10이하일 경우 true, 아닐 경우 false를 리턴하는 함수를 생성했습니다.
위에서 말씀드린데로 every 는 callbackFunction에서 모두 true를 리턴해야 true가 되고
some은 하나라도 true가 되면 true가 리턴이 됩니다.
결과가 예측이 되시나요??
크롬에서 콘솔창을 확인한 결과 입니다.
false, true, true, true 가 나왔죠.
첫번째의 경우 4,5 에서 false가 리턴이 되니 false
두번째의 경우 모두 10 미만이니 true
세번째의 경우 1,2,3 에서 true 이니 true
네번째의 경우 모두 true이니 true 값이 리턴된 것입니다.
every나 some 함수의 경우 배열내 값이 존재하는지 확인할때나 조건에 맞는(혹은 맞지 않는) 값이 있는지 확인 할 때 등 활용이 가능합니다.
'Programing > JavaScript' 카테고리의 다른 글
javascript Object 객체 자바스크립트 오브젝트 객체에 대해 알아보자. (0) | 2017.09.13 |
---|---|
javascript 배열 함수 정리, 고차함수 정리 자바스크립트 배열함수 자바스크립트 고차함수 (0) | 2017.09.07 |
javascript map 함수에 대해 알아보자. 자바스크립트 map 함수 (0) | 2017.09.07 |
javascript forEach 함수에 대해 알아보자. 자바스크립트 forEach 함수 (0) | 2017.09.07 |
javascript Math 속성과 메서드에 대해 알아보자. javascript math 자바스크립트 math (0) | 2017.09.06 |
댓글