JavaScript & Node.js

[find, findIndex, indexOf] 배열 함수

Haksae 2022. 1. 17. 00:29

find, findIndex, indexOf는?

  • 자바스크립트 Array.prototype
  • 배열에서 원하는 값 또는 식별자를 찾아내는 메서드
  • 배열을 순차 반복
  • find 는 인자로 받은 판별 함수를 만족하는 첫 번째 요소를 반환
  • findIndex 는 인자로 받은 판별 함수를 만족하는 첫 번째 식별자를 반환
  • indexOf 는 인자로 요소를 받아 만족하는 첫 번째 식별자를 반환

.find() : 판별 함수를 만족하는 첫 요소를 반환

 arr.find(callback(element, index, array), thisArg)
  • arr : 순회하고자하는 배열
  • element : 현재 배열의 요소
  • index(생략 가능) : 현재 배열의 요소의 index
  • array(생략 가능) : find 메서드를 호출할 배열
  • thisArg(생략 가능) : callback을 실행할 때 this로 사용되는 값
*참고로 find와 filter 메서드는 기본 포맷이 동일
*.filter와 다른 점은 find() 함수는 특정 조건에 부합하는 배열의 첫번째 값만 리턴한다면, filter()함수는 특정 조건에 부합하는 배열의 모든 값을 배열 형태로 리턴함

 

  • 배열의 요소에서 조건의 맞는 요소의 값을 반환단다. 없다면 undefined
  • 원하는 요소를 찾자마자 메서드를 종료한다.
const arr = [5, 6, 9, 1, 6, 3, 2, 1, 2, 7, 9, 4, 3];

const find1 = arr.find((element, index, array) => {
    // 인덱스 2인 요소를 찾을 때 까지 반복
  console.log("콜백함수를 실행한 배열은? ", array);
  return index == 2;
});
const find2 = arr.find((element, index, arr) => element === 3);
const find3 = arr.find((e) => e > 8);
const find4 = arr.find((e) => e > 10);
console.log("find1:", find1);  // 9
console.log("find2:", find2);  // 3
console.log("find3:", find3);  // 9
console.log("find4:", find4);  // undefined

.findIndex() : 판별 함수를 만족하는 첫 식별자 반환

 arr.findIndex(callback(element, index, array))
  • arr : 순회하고자하는 배열
  • element : 현재 배열의 요소
  • index(생략 가능) : 현재 배열의 요소의 index
  • array(생략 가능) : find 메서드를 호출할 배열

 

  • 원하는 요소의 식별자 찾기, 반환 타입 number, 없다면 -1 반환
  • 원하는 요소를 찾자마자 메서드 종료
const arr = [5, 6, 9, 1, 6, 3, 2, 1, 2, 7, 9, 4, 3];

const find1 = arr.findIndex((element, index, arr) => element === 3);
const find2 = arr.findIndex((e) => e > 8);
const find3 = arr.findIndex((e) => e > 10);

console.log("findIndex1:", find1);  // 5
console.log("findIndex2:", find2);  // 2
console.log("findIndex3:", find3);  // -1

.indexOf : 인자로 받은 값을 찾아 맞는 식별자 반환

arr.indexOf(value, index)
  • value : 배열에서 찾을 요소
  • index : 찾기 시작할 index
  • 반환 타입 number, 없다면 -1
  • 원하는 요소의 식별자 찾기
  • 원하는 요소를 찾자마자 메서드 종료