Array.prototype.find()
사용법
find()
함수는
배열에서 특정 조건을 만족하는 요소를 찾아 첫 번째 요소를 반환하는 함수입니다.
배열의 각 요소에 대해 콜백 함수를 사용하여 원하는 조건의 요소를 찾습니다.
find()
함수는 배열에서 특정 요소를 찾는 데 유용합니다.
[😃, 🏀, 🍅, 🐵].find(function(요소) {return 요소 === 🏀}) 👉 🏀
find()
함수로 "green" 찾기
// 배열을 만듭니다.
const colors = ["red", "green", "blue"];
// 배열에서 조건을 만족하는 첫 번째 요소를 찾습니다.
const green = colors.find(function(color) {
return color === "green"; // 배열 요소가 "green"과 같은지 확인합니다.
});
// 결과를 출력합니다.
console.log(green); // 출력: "green"
find()
함수의 형식은 다음과 같습니다.
구문
arr.find(callbackFn[, thisArg])
arr
은 find()
함수를 적용할 배열입니다.
매개변수
callbackFn |
배열의 각 요소를 처리하는 콜백 함수입니다. 콜백 함수는 배열의 각 요소에 대해 실행됩니다. 콜백 함수는 주어진 요소에 대해 실행되고, 콜백 함수 내에서 정의한 조건을 확인합니다. 조건은 return 문을 사용하여 정의되며, 조건이 true 로 평가되면 해당 요소를 찾은 것으로 간주됩니다. find() 함수는 조건을 만족하는 첫 번째 요소를 찾으면 배열 순회를 중단하고 해당 요소를 반환합니다. 그러면 코드 실행이 멈춥니다.
콜백 함수의 매개변수: callbackFn(element[, index[, array]])
|
---|---|
thisArg |
옵션. callbackFn 함수 내부에서 사용할 this 값으로 사용할 값입니다. |
첫 번째 매개변수인 콜백 함수(callbackFn
)과 관련되어 함수의 형태별 구문 형식은 다음과 같습니다.
// 화살표 함수
find((element) => { /* … */ })
find((element[, index]) => { /* … */ })
find((element[, index[, array]]) => { /* … */ })
// 콜백 함수
find(callbackFn)
find(callbackFn[, thisArg])
// 인라인 콜백 함수
find(function (element) { /* … */ })
find(function (element[, index]) { /* … */ })
find(function (element[, index[, array]]) { /* … */ })
find(function (element[, index[, array]]) { /* … */ }[, thisArg])
반환 값
콜백 함수가 찾아낸 첫 번째 조건을 만족하는 배열 요소입니다.
만약 조건을 만족하는 요소를 찾지 못했다면 undefined
를 반환합니다.
콜백 함수의 작동 원리
callbackFn(element[, index[, array]])
find()
함수는 주어진 배열의 요소를 개발자가 직접 작성한 콜백 함수를 사용하여 원하는 조건에 따라 찾고, 조건을 충족하는 첫 번째 요소를 반환하는 함수입니다.
find()
함수의 콜백 함수는 배열의 요소들 중에서 콜백 함수 내에서 정의한 조건을 확인합니다. 조건은 return
문을 사용하여 정의되며, 조건이 true
로 평가되면 해당 요소를 찾은 것으로 간주됩니다. find()
함수는 조건을 만족하는 첫 번째 요소를 찾으면 배열 순회를 중단하고 해당 요소를 반환합니다. 그러면 코드 실행이 멈춥니다.
find()
함수에서 사용하는 콜백 함수의 구조
/**
* 콜백 함수
*
* @param {*} element 배열의 각 요소
* @param {number} index 배열의 인덱스 (선택적)
* @param {Array} array 원본 배열 (선택적)
* @return {boolean} 필터링 조건을 충족하면 true, 그렇지 않으면 false 반환
*
* 콜백 함수는 기명 함수(사용자 정의 함수)나 익명 함수 등으로 사용할 수 있습니다.
* (당연히) 모든 콜백 함수는 화살표 함수로 사용할 수 있습니다.
*/
/* 콜백 함수를 기명 함수를 사용할 경우 */
function callbackFn(element[, index[, array]]) { // 기명 함수 정의
// return 문을 사용하여 조건을 정의합니다.
}
arr.find(callbackFn); // 정의한 기명 함수명을 매개변수에 직접 전달
/* 콜백 함수를 익명 함수로 사용할 경우 */
arr.find(function (element[, index[, array]]) {
// return 문을 사용하여 조건을 정의합니다.
});
다양한 활용 사례
find()
함수는 배열에서 특정 조건을 만족하는 첫 번째 요소를 찾는데 사용되며, 다양한 활용 사례가 있습니다. 몇 가지 예시를 살펴보겠습니다.
특정 요소 찾기
배열에서 특정 요소를 찾을 때 사용됩니다. 예를 들어, 특정 문자열이나 숫자를 찾을 수 있습니다.
const numbers = [1, 2, 3, 4, 5];
const target = 3;
const found = numbers.find(element => element === target);
console.log(found); // 출력: 3
객체 속성 기반 검색
객체 배열에서 특정 속성 값에 따라 객체를 검색할 때 유용합니다.
const people = [
{name: "Alice", age: 30},
{name: "Bob", age: 25},
{name: "Charlie", age: 35}
];
const targetName = "Bob";
const person = people.find(obj => obj.name === targetName);
console.log(person); // 출력: {name: "Bob", age: 25}
사용자 지정 조건에 따른 검색
사용자 지정 조건 함수를 만들어 배열 요소 검색에 활용할 수 있습니다.
const products = [
{name: "Laptop", price: 1000},
{name: "Phone", price: 500},
{name: "Tablet", price: 300}
];
const customCondition = product => product.price < 600;
const affordableProduct = products.find(customCondition);
console.log(affordableProduct); // 출력: {name: "Phone", price: 500}
find()
함수를 사용하면 배열에서 조건에 맞는 첫 번째 요소를 효과적으로 찾을 수 있으므로, 다양한 상황에서 유용하게 활용할 수 있습니다.
브라우저 호환성
find()
함수는 ECMAScript 2015 (ES6)부터 도입되었습니다.
메서드 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
---|---|---|---|---|
find()
|
45 | 12 | 25 | 8 |
명세서
명세서 사양 | |
---|---|
find()
|
ECMAScript Language Specification #sec-array.prototype.find |
같이 보기
- 자바스크립트 findIndex() 함수 – 개념 정리 및 사용 예제
- 자바스크립트 map() 함수 – 개념 정리 및 사용 예제
- 자바스크립트 forEach() 함수 – 개념 정리 및 사용 예제
- 자바스크립트 filter() 함수 – 개념 정리 및 사용 예제
- 자바스크립트 reduce() 함수 – 개념 정리 및 사용 예제
- 자바스크립트 배열 indexOf() 함수 - 배열에서 요소의 위치 찾기
- 자바스크립트 문자열에 특정 문자 포함 여부 확인 - includes() 함수
- 자바스크립트 배열에 특정 요소 포함 여부 확인 - includes() 함수
- PHP array_search() 함수 – 개념 정리 및 사용 예제