TIL. indexOf vs findIndex

배상건·2021년 12월 13일
0

TIL

목록 보기
1/15

배열의 요소가 무엇을 구성되어 있는가?

원하는 항목이 배열의 몇번째 요소인지 찾고자 할때, 우리는 무엇을 먼저 확인해야 할까?

바로, 배열의 요소가 가진 타입이다.

배열은 항목으로써 Number, String, Blooean, Object, Array를 요소로 가질 수 있다.

그런데, 요소가 가진 타입에 따라 찾고자 하는 항목이 몇번째 요소인지 알아내는 방법이 나눠진다.

  1. 배열 요소 타입 : Number, String, Blooean
    arr.indexOf(el, index);
let arr = [1,2,3,4,5,1,2,3];
arr.indexOf(3); // 2
arr.indexOf(7); // -1 찾고자 하는 항목이 없을 경우  -1을 반환한다.
				// if(0) = false
arr.indexOf(3, 3); // 7
	           // 3번째 인덱스부터 요소 3을 찾아라!
                   // 찾은 결과 요소 3은 7번 인덱스에 위치한다.
  1. 배열 요소 타입 : Object, Array
    objsArr.findIndex(obj => obj.key === index);
const todos = [
  {
    id: 1,
    text: '자바스크립트 입문',
    done: true
  },
  {
    id: 2,
    text: '함수 배우기',
    done: true
  },
  {
    id: 3,
    text: '객체와 배열 배우기',
    done: true
  },
  {
    id: 4,
    text: '배열 내장함수 배우기',
    done: false
  }
];
// 여기서 만약 id 가 3 인 객체가 몇번째인지 찾으러면, 
// findIndex 함수에 검사하고자 하는 조건을 반환하는 
// 함수를 넣어서 찾을 수 있습니다.
const index = todos.findIndex(todo => todo.id === 3);
console.log(index);

참고 : https://learnjs.vlpt.us/basics/09-array-functions.html

profile
목표 지향을 위해 협업하는 개발자

0개의 댓글