Programing/JavaScript

javascript every, some 함수에 대해 알아보자. 자바스크립트 every, some 함수

리커니 2017. 9. 7.
반응형

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 함수의 경우 배열내 값이 존재하는지 확인할때나 조건에 맞는(혹은 맞지 않는) 값이 있는지 확인 할 때 등 활용이 가능합니다.

 

반응형

댓글

💲 추천 글