Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript some() 메서드 완벽 가이드 – 배열에서 조건을 만족하는 요소 확인하기

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>

실행 결과

JavaScript some() 메서드 완벽 가이드 – 배열에서 조건을 만족하는 요소 확인하기

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

JavaScript some() 메서드 완벽 가이드 – 배열에서 조건을 만족하는 요소 확인하기

배열에 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>

실행 결과

JavaScript some() 메서드 완벽 가이드 – 배열에서 조건을 만족하는 요소 확인하기

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

JavaScript some() 메서드 완벽 가이드 – 배열에서 조건을 만족하는 요소 확인하기

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