indexOf
값이 있는 순서를 알고 싶을 때 사용한다.
예시)
const pets = ["병아리", "개", "고양이", "앵무새", "햄스터"];
const index = pets.indexOf("고양이");
console.log(index);
index는 2가 출력된다.
findIndex
배열 안에 객체가 들어있을 경우에는 indexOf는 사용이 불가하다 .
그러므로 findIndex를 써야하는데 예시는 아래와 같다.
const players = [
{
name: "손흥민",
position: "fw",
number: 7
},
{
name: "해리케인",
position: "st",
number: 10
},
{
name: "호이비에",
position: "md",
number: 5
},
{
name: "은돔벨레",
position: "md",
number: 28
},
{
name: "요리스",
position: "gk",
number: 1
}
];
const index = players.findIndex((player) => player.name === "손흥민");
console.log(index);
index는 0이 출력된다.
하지만 여기서 findIdex 대신 find를 쓰는 경우는
const index = players.find((player) => player.name === "손흥민");
console.log(index);
player.name === '손흥민' 을 포함하고 있는 객체 자체를 출력하게 된다.
{name: "손흥민", position: "fw", number: 7}