개발공작소
728x90

 

기존 ES5에서의 indexOf와 비슷하지만, ES6에서 findIndex()라는 메서드를 지원하며 더욱 강력한

배열 검색 기능을 지원하게 되었다. 

 

가장 큰 차이점은 indexOf이 특정값만 찾는 데 사용되었다면, findIndex()는 filter등의 다른 함수와

조합하여 더욱 복잡한 조건의 검색도 가능하다는 점이다.

 

 

findIndex()이란?

-----------------------------------------------------------------------------------------------------------------------------------

 

Array.prototype.findIndex() : 주어진 판별 함수를 만족하는 배열의 첫 번째 요소에 대한 인덱스를 반환합니다. 만족하는 요소가 없으면 -1을 반환

 

여기서 "주어진 판별 함수를 만족" 한다는 문구가 핵심이다. 

 

기본문법

arr.findIndex(function(currentValue, index, array), thisValue));

//function : (필수값) 배열의 각 엘리먼트에서 실행 될 함수
//currentValue : (필수값) 배열 내에서 순차적으로 입력되는 엘리먼트
//index : (선택값) 현재 엘리먼트의 배열 내 index
//array : (선택값) 현재 엘리먼트가 속한 배열
//thisValue : (선택값) 함수 내부에서 사용될 this에 대한 값

 

findIndex의 function안에 인자가 많지만, 실제로 주로 쓰이는 것은 currentValue뿐이다..

 

 

찾는 값이 있는 경우

<script>

   let array = ['달 밝은 밤이면','창가에 흐르는','내 젊은 연가가','구슬퍼'];

   let index = array.findIndex((currentValue,index,array)=>{
        return currentValue == '구슬퍼'
   });

   console.log(index); //구슬퍼의 위치값인 3 출력

</script>

 

찾는 값이 없는 경우

<script>

   let array = ['달 밝은 밤이면','창가에 흐르는','내 젊은 연가가','구슬퍼'];
   
   let index = array.findIndex((currentValue,index,array)=>{
        return currentValue == '기뻐서'
   });

   console.log(index); //'기뻐서'가 없으니 -1 출력
   
</script>

 

728x90
profile

개발공작소

@모찌바라기

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!