📖 관련 공식 문서
findIndex() 메서드는 주어진 판별 함수를 만족하는 배열의 첫 번째 요소에 대한 인덱스를 반환한다. 만족하는 요소가 없으면 -1을 반환한다.
findIndex()는 호출되는 배열을 변경하지 않는다.
원하는 요소를 찾자마자 메서드를 종료한다.(뒤쪽 요소는 관심조차 주지 않는다.)
const array1 = [5, 12, 8, 130, 44];
const isLargeNumber1 = (el) => el > 13;
const isLargeNumber2 = (el) => el > 130;
console.log(array1.findIndex(isLargeNumber1));
// output: 3
console.log(array1.findIndex(isLargeNumber2));
// output: -1
arr.findIndex(callback(element, index, array)[, thisArg])
매개변수
callback(필수): 아래 3개의 인수(element, index, array)를 취하여 배열의 각 값에 대해 실행할 함수이다.
👉 위 코드에서 callback 함수는 'isLargeNumber1, isLargeNumber2'
- element(필수): 배열에서 처리중인 현재 요소이다.
- index(옵션): 배열에서 처리중인 현재 요소의 인덱스이다.
- array(옵션): findIndex 함수가 호출된 배열이다.
thisArg(옵션): 선택 사항. 콜백을 실행할 때 this로 사용할 객체이다.
find() 메서드는 주어진 판별 함수를 만족하는 첫 번째 요소 값을 반환한다. 만족하는 요소가 없으면 undefined을 반환한다.
find()는 호출되는 배열을 변경하지 않는다.
원하는 요소를 찾자마자 메서드를 종료한다.
arr.find(callback, thisArg)
매개변수
callback(필수): 아래 3개의 인수(element, index, array)를 취하여 배열의 각 값에 대해 실행할 함수이다.
- element(필수): 콜백함수에서 처리중인 현재 요소이다.
- index(옵션): 콜백함수에서 처리중인 현재 요소의 인덱스이다.
- array(옵션): find 함수가 호출된 배열이다.
thisArg(옵션): 선택 사항. 콜백을 실행할 때 this로 사용할 객체이다.
사실상 find(), findIndex()는 거의 동일하고 요소 값을 반환하는지 인덱스를 반환하는지의 차이만 있다.