프론트엔드/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>