JavaScript
[JavaScript] 자바스크립트 find 함수 사용법
유병각
2022. 5. 10. 00:13
안녕하세요. gaki 입니다.
오늘은 배열에서 특정 값을 찾아주는 find 함수에 대해서 이야기 해보려 합니다.
find 함수는 자바스크립트 Array 객체의 프로토타입 매서드입니다.
<목차>
1. find 함수 설명
2. find 함수 예제
1. 자바스크립트 find 함수 설명
find 함수는 Array 객체의 프로토타입 매서드로 존재하는 함수입니다.
즉 따로 임포트 하지않고서, 배열에 바로 사용할 수 있습니다.
Array.prototype.find()
시간복잡도: O(N)
함수는 아래와 같이 구성되어 있습니다.
arr.find(callback[, thisArg])
find 매서드는 인자로 callback 함수를 받습니다.
callback 함수가 참을 반환할때 까지 배열의 각 요소에 대해 callback 함수를 실행합니다.
만약 참을 반환하는 어느 요소를 찾았다면 find 매서드는 해당 요소의 값을 즉시 반환하고,
callback 이 참을 반환하는 요소를 하나도 찾지 못했다면 undefined 를 반환합니다.
callback 함수는 최대 3개의 인자를 가지고 호출됩니다.
첫번째 인자는 요소의 값
두번째는 요소의 인덱스
세번째는 배열 전체
통상적으로 find 매서드를 쓸때는 첫번째 인자인 요소의 값만 callback 함수에 넣고 사용합니다.
2. 자바스크립트 find 함수 예제
let arr = ["a","b","c"];
let match = arr.find((elem, idx, arr) => {
console.log(elem);
console.log(idx);
console.log(arr);
console.log("----");
return elem === "c";
})
console.log(match);
/* 출력값
a
0
[ 'a', 'b', 'c' ]
----
b
1
[ 'a', 'b', 'c' ]
----
c
2
[ 'a', 'b', 'c' ]
----
c
*/
["a", "b", "c"] 라는 배열에서 각 요소 하나하나를 순회할때 elem 이 "c" 와 같은 걸 찾을 때 까지 배열을 순회해서 찾는다.
arr.find((elem) => elem === "b");
위의 식은 arr 를 순회하면서 elem 이 "b" 와 같은 것을 리턴한다. 라는 의미이다.