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

JavaScript 배열 find() 메서드 완벽 정리 – 문법과 활용 예제

JavaScript의 find() 메서드는 배열에서 콜백 함수가 정한 조건을 통과하는 첫 번째 요소의 값을 반환합니다. 만약 조건을 만족하는 요소가 하나도 없다면 undefined를 반환합니다. 이 메서드는 ES6(ECMAScript 2015)부터 도입되어 현대적인 배열 탐색에 널리 사용됩니다.

문법

array.find(function(val, index, arr), thisValue)

매개변수 설명

  • function : 배열의 각 요소에 대해 실행할 테스트 함수입니다.
  • val : 현재 처리 중인 요소의 값을 나타냅니다.
  • index : 현재 요소의 배열 인덱스입니다. (선택 사항)
  • arr : find()가 호출된 원본 배열입니다. (선택 사항)
  • thisValue : 콜백 함수 내부에서 this로 사용할 값입니다. 생략하면 undefined가 전달됩니다.

find()는 조건을 만족하는 첫 번째 요소를 발견하는 즉시 검색을 중단합니다. 따라서 조건에 맞는 모든 요소를 새 배열로 반환하는 filter()와 달리, 단일 요소를 찾을 때는 더 적은 연산으로 효율적으로 동작합니다.

예제 1: 조건을 만족하는 요소가 있는 경우

다음 예제는 랭킹 포인트 배열에서 400보다 큰 첫 번째 점수를 찾아 화면에 출력합니다.

<!DOCTYPE html>
<html>
<body>
   <h2>Ranking Points</h2>
   <p>Get the points (first element) 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.find(pointsFunc);
      }
   </script>
</body>
</html>

실행 결과

JavaScript 배열 find() 메서드 완벽 정리 – 문법과 활용 예제

위 화면에서 “Result” 버튼을 클릭하면 다음과 같은 결과를 확인할 수 있습니다.

JavaScript 배열 find() 메서드 완벽 정리 – 문법과 활용 예제

배열 [50, 100, 200, 300, 400, 500, 600] 중에서 400보다 큰 첫 번째 요소는 500이므로, find()는 해당 값을 그대로 반환합니다.

예제 2: 조건을 만족하는 요소가 없는 경우

이번에는 배열에 400보다 큰 요소가 없는 경우를 살펴보겠습니다. 이처럼 조건을 통과하는 요소가 없으면 find()는 undefined를 반환합니다.

<!DOCTYPE html>
<html>
<body>
   <h2>Ranking Points</h2>
   <p>Get the points (first element) above 400...</p>
   <button onclick="display()">Result</button>
   <p id="demo"></p>
   <script>
      var pointsArr = [50, 100, 200, 300, 400];
      function pointsFunc(points) {
         return points > 400;
      }
      function display() {
         document.getElementById("demo").innerHTML = pointsArr.find(pointsFunc);
      }
   </script>
</body>
</html>

실행 결과

JavaScript 배열 find() 메서드 완벽 정리 – 문법과 활용 예제이번에도 “Result” 버튼을 클릭해 보겠습니다.

JavaScript 배열 find() 메서드 완벽 정리 – 문법과 활용 예제

배열의 최댓값이 400이므로 points > 400 조건을 만족하는 요소가 존재하지 않고, 결과적으로 undefined가 출력됩니다.

정리

  • find()는 조건을 만족하는 첫 번째 요소의 값만 반환합니다.
  • 조건에 맞는 요소가 없으면 undefined를 반환합니다.
  • 참고로 값 자체가 아니라 위치가 필요하다면 findIndex() 메서드를 사용하면 됩니다.