프론트엔드/JavaScript

자바스크립트 고차함수 - every(), some()

ksge7 2020. 10. 6. 11:53

every와 some 메서드를 사용하면 배열 안에 특정 조건을 만족하는 요소가 있는지 판별할 수 있다.

some 메서드

some 메서드는 배열 안의 요소 중 some이 파라미터로 받은 콜백함수의 조건에 맞는 요소가

 

단 한 개라도 있으면 true를 반환한다.

 

<body>
    <script>
    
        let num = [2,4,6,8,10];

        let some = num.some(function(item){ // some은 아예 해당안되면 false
            return item > 10;
        });

        console.log(some); // false 출력

    </script>
</body>

 

<body>
    <script>
    
        let num = [2,4,6,8,10];

        let some = num.some(function(item){ // some은 일부만 해당되도 true
            return item >= 10;
        });

        console.log(some);  // true 출력

    </script>
</body>

 

이때 some 메서드로 호출한 콜백함수는 some 메서드를 호출한

 

배열 요소, 배열의 인덱스, 배열 그 자체를 파라미터로 받아올 수 있다.

 

<body>
    <script
    
        let num = [2,4,6,8,10];

        let some = num.some(function(item, index, array){
            console.log("요소:"+item+" 인덱스:"+index+" 배열:"+array);
            return item > 10;
        });
        // 요소:2 인덱스:0 배열:2,4,6,8,10
        // 요소:4 인덱스:1 배열:2,4,6,8,10
        // 요소:6 인덱스:2 배열:2,4,6,8,10
        // 요소:8 인덱스:3 배열:2,4,6,8,10
        // 요소:10 인덱스:4 배열:2,4,6,8,10

    </script>
</body>

 

every 메서드

every 메서드는 배열 안의 모든 요소가 every가 파라미터로 받은 콜백함수의 조건에

 

모두 해당되야 true를 반환한다.

 

<body>
    <script>
    
        let num = [2,4,6,8,10];

        let every = num.every(function(item){ // every는 일부만 해당되면 false
            return item > 2;
        })

        console.log(every); // false 출력

    </script>
</body>

 

<body>
    <script>
        let num = [2,4,6,8,10];

        let every = num.every(function(item){ // every는 모두가 해당되어야 true
            return item >= 2;
        })

        console.log(every); // true 출력

    </script>
</body>

 

이때 every 메서드로 호출한 콜백함수는 some 메서드를 호출한

 

배열 요소, 배열의 인덱스, 배열 그 자체를 파라미터로 받아올 수 있다.

 

<body>
    <script>
        let num = [2,4,6,8,10];

        let every = num.every(function(item, index, array){
            console.log("요소:"+item+" 인덱스:"+index+" 배열:"+array);
            return item >= 2;
        })

        // 요소:2 인덱스:0 배열:2,4,6,8,10
        // 요소:4 인덱스:1 배열:2,4,6,8,10
        // 요소:6 인덱스:2 배열:2,4,6,8,10
        // 요소:8 인덱스:3 배열:2,4,6,8,10
        // 요소:10 인덱스:4 배열:2,4,6,8,10

    </script>
</body>