JavaScript some() 메서드란?
JavaScript의 some() 메서드는 배열의 요소 중 하나라도 주어진 조건을 충족하는지 확인할 때 사용합니다. 조건을 만족하는 요소가 존재하면 true를, 하나도 없으면 false를 반환합니다.
some() 메서드는 배열의 각 요소에 대해 콜백 함수를 순차적으로 실행하며, 조건을 만족하는 첫 번째 요소를 발견하는 즉시 반복을 중단하고 결과를 반환합니다. 따라서 불필요한 연산 없이 효율적으로 동작합니다. 참고로 빈 배열에 some()을 호출하면 항상 false가 반환됩니다.
기본 문법
array.some(function(currentVal, index, arr), val)
매개변수 설명
- currentVal: 현재 처리 중인 요소의 값
- index: 현재 요소의 배열 인덱스
- arr: 현재 요소가 속한 배열 객체
- val: 선택 사항이며, 콜백 함수 안에서
this로 참조될 값
그럼 실제 코드를 통해 some() 메서드를 어떻게 활용하는지 살펴보겠습니다.
예제 1: 400을 초과하는 점수가 있는지 확인하기
아래 예제는 배열에 저장된 점수 중 400보다 큰 값이 하나라도 있는지 검사합니다.
<!DOCTYPE html>
<html>
<body>
<h2>Ranking Points</h2>
<p>Is any point above 400...</p>
<button onclick="display()">Result</button>
<p id="demo"></p>
<script>
var pointsArr = [50, 100, 200, 300, 400, 500, 600];
function pointsFunc(points) {
return points > 400;
}
function display() {
document.getElementById("demo").innerHTML = pointsArr.some(pointsFunc);
}
</script>
</body></html>실행 결과

"Result" 버튼을 클릭하면 화면에 다음과 같이 출력됩니다.

배열에 500과 600이라는 400을 초과하는 값이 포함되어 있으므로 true가 반환됩니다.
예제 2: 550과 같은 점수가 있는지 확인하기
이번에는 배열에 550과 동일한 값이 존재하는지 확인해 보겠습니다.
<!DOCTYPE html>
<html>
<body>
<h2>Ranking Points</h2>
<p>Is any point equal to 550...</p>
<button onclick="display()">Result</button>
<p id="demo"></p>
<script>
var pointsArr = [10, 20, 30, 40, 50, 60, 70, 80, 90, 1000];
function pointsFunc(points) {
return points == 550;
}
function display() {
document.getElementById("demo").innerHTML = pointsArr.some(pointsFunc);
}
</script>
</body></html>실행 결과

"Result" 버튼을 클릭하면 아래와 같은 결과를 확인할 수 있습니다.

배열에 550과 같은 값이 존재하지 않으므로 이번에는 false가 반환됩니다.