배열에 제공된 테스트 함수를 충족하는 첫 번째 요소의 인덱스를 반환하는 함수
테스트 함수를 충족하는 함수가 없다면 -1 반환
매개변수로 콜백함수를 사용하며, boolean값을 반환할 수 있도록 해야 한다.
매개변수인 testFn은 요소가 발견되었음을 나타내는 boolean값을 반환할 때까지 배열의 각 요소에 대해 실행하는 함수이다.
testFn의 매개변수로는 3가지가 있다.
현재 진행중인 투두리스트 프로젝트를 예시로 들어보자.
투두의 기본 카테고리는 "TO_DO"이며, "DOING", "DONE"이 추가로 있다.
버튼 별로 카테고리의 텍스트를 갖고 있는데 해당 버튼을 클릭 하면 카테고리가 버튼의 텍스트로 변경되어야 한다.
아래와 같은 카테고리가 있다고 가정해보자.

2번 인덱스의 카테고리를 변경하고자 한다면 해당 인덱스에 접근해 수정해주어야 한다.
해결 방법은 아래와 같다.
// 카테고리 변경 함수
const handleChgCategory = (e : React.MouseEvent<HTMLButtonElement>) => {
setToDos((prevToDoList) => {
// 찾을 투두리스트 인덱스
const toDoIndex = prevToDoList.findIndex((toDo) => toDo.id === id);
// 과거 투두리스트
const prevToDo = prevToDoList[toDoIndex];
// 변경된 투두리스트
const newToDo = {id : id, text : text, category : e.currentTarget.name as ToDoListItfc["category"]};
// 변경 내역 적용
const updatedToDo = [...prevToDoList];
prevToDoList.splice(toDoIndex, 1, newToDo);
return updatedToDo;
})
};
각 버튼을 클릭하면 버튼 텍스트로 카테고리가 변경되는 것을 확인할 수 있다.

참고