find() 메서드는 배열에서 조건을 만족하는 첫번째 요소만을 반환하고
만족하는 값이 없으면 undefined를 반환한다.
매개변수로는 element,index,array,thisArg 를 받을 수 있다.
값을 다 넣어야 하는 것은 아니고 element 등의 값은 예시일 뿐이니 각 값에 다른 이름을 넣어도 된다.
매개변수 입력 순서를 지켜줘야함 (element,index,array,thisArg(선택사항) 순서
만약 아래 셋 중 index 값이 필요 없다면 find(element,,array) 이렇게 공간을 비워주면 됨. element 값만 쓴다면 find(element)
element : 배열 안의 각 요소
index : 배열 각각의 인덱스
array : 함수가 호출된 배열
아래의 예시를 들자면 a가 배열 안의 각 요소를 가리키고
idx 는 각 요소가 있는 배열의 인덱스 값 arr은 find 함수가 호출된 array1 을 출력한다.
const array1 = [5, 12, 8, 130, 44];
let search = array1.find((a,idx,arr) => {
console.log(a,idx,array)
}
5 0 [ 5, 12, 8, 130, 44 ]
12 1 [ 5, 12, 8, 130, 44 ]
8 2 [ 5, 12, 8, 130, 44 ]
130 3 [ 5, 12, 8, 130, 44 ]
44 4 [ 5, 12, 8, 130, 44 ]
위와 같이 출력된다.
만약 배열 중에 2로 나눠지는 값만 하나 찾고 싶다 하면
const array1 = [5, 12, 8, 130, 44]
let find1 = array1.find((a, idx, arr) => a % 2 == 0)
위와 아래는 같은 코드인데 아래처럼 중괄호를 넣는 경우 return을 해주어야 값이 정상적으로 나온다.
const array1 = [5, 12, 8, 130, 44]
let find1 = array1.find((a, idx, arr) => {
return a % 2 == 0
})
이렇게 입력하면 배열 중 2로 나눠 떨어지는 값 중 가장 앞에있는 12가 출력된다.
만약 해당하는 인덱스를 리턴하고 싶으면 findIndex()라는 함수가 있다. 사용법은 거의 동일하다.
아래는 참고한 mdn 문서이다.
find
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find
findIndex
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex