[TIL] JavaScript, find() 함수

김효진·2023년 10월 19일
0
post-custom-banner

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

profile
더 많은 사람들이 더 좋은 정보와 서비스를 누릴 수 있게!!
post-custom-banner

0개의 댓글