findIndex()는 찾은 요소의 인덱스를 반환하고, 찾지 못했다면 -1을 반환합니다. indexOf()와 작동 방식이 비슷합니다. 다음 예제의 결과는 1입니다. 찾은 값이 3이므로 3의 인덱스인 1이 결과로 나옵니다.
const array = [1, 3, 5, 7];
array.findIndex((v, i) => {
return v > 1;
}); // 1
filter()는 find()처럼 콜백 함수의 반환값이 true가 되는 요소를 찾지만, 하나만 찾는 것이 아니라 해당하는 모든 요소를 찾아 결과를 배열로 반환합니다.
[1, 2, 3, 4, 5].filter((v) => v % 2 === 0); // (2) [2, 4]
// 1 % 2 == = 0, false / 2 % 2 == = 0, true / 3 % 2 == = 0, false
// 4 % 2 == = 0, true / 5 % 2 == = 0, false
findIndex()의 예제 코드를 filter()로 바꿔 보면 다음과 같습니다.
const array = [1, 3, 5, 7];
array.filter((v, i) => {
return v > 1;
}); // [3, 5, 7]