본문 바로가기

JAVASCRIPT

배열 내장함수 - indexOf / findIndex / find

1. indexOf

-배열 안에서 특정 문자열의 위치를 반환하는 함수, 여러번 나올 경우 첫번째 위치를 반환한다.

 

예제) avengers 배열 속에서 '토르'의 순서를 찾아라 (컴퓨터 언어에서 순서는 0부터 시작한다)

 

정답)

const avengers = ['아이언맨', '캡틴아메리카', '토르', '닥터스트레인지', '토르'];
const index = avengers.indexOf('토르');

console.log(index);

//정답 : 2

 

 

2. findIndex

- indexOf와 마찬가지로 배열 안에서 특정 문자열의 위치를 반환하지만, 단순한 문자가 아닌 객채 혹은 특정 조건의 맞는 값의 위치를 반환할 때 사용된다

 

예제) 객체로 이루어진 배열을 작성한 후, done값을 false로 가지고 있는 객체의 순서를 반환하시오

 

정답)

const todos = [
  {
    id: 'map',
    text: '자바스크립트 내장함수',
    done: true,
  },
  {
    id: 'indexOf',
    text: '자바스크립트 내장함수',
    done: true,
  },
  {
    id: 'filter',
    text: '자바스크립트 내장함수',
    done: false,
  }
]

//파라미터를 todo로 받아온 후 조건을 찾는 함수로 todo.key값 === '조건'을 넣어 배열값을 확인
const index = todos.findIndex(todo => todo.done === false);
console.log(index);

//결과값 : 2

 

 

3. find

- findIndex와 비슷하지만 배열 안에서 조건에 맞는 객체의 index번호가 아니라, 객체 자체를 반환한다

 

const todos = [
  {
    id: 'map',
    text: '자바스크립트 내장함수',
    done: true,
  },
  {
    id: 'indexOf',
    text: '자바스크립트 내장함수',
    done: true,
  },
  {
    id: 'filter',
    text: '자바스크립트 내장함수',
    done: false,
  }
]

const index = todos.find(todo => todo.done === false);
console.log(index);

//결과값 : {id: "filter", text: "자바스크립트 내장함수", done: false}