javascript

Javascript find()문법

유니유뉘 2023. 2. 24. 17:21
728x90

Javascript find() 문법이란?

find()문법에 대해서

배열 내에서 제공된 콜백 함수로부터 true를 반환하는 첫 번째 요소를 반환한다.

즉, 배열에서 조건에 해당하는 첫 번째 요소를 찾아서 반환한다.

만약 요소를 찾지 못하면 undefined를 반환한다.

arr.find(callback(element[, index[, array]])[, thisArg])
  • callback : 각 요소를 검사할 콜백함수이다. 다음 세가지 매개 변수를 받는다.
    • element : 현재 요소
    • index : 현재 요소의 인덱스
    • array : 검색하는 배열
  • thisArg : callback에서 this로 사용할 객체

find()메서드는 배열의 첫 번째 요소부터 순차적으로 실행하며, 콜백 함수에서 true를 반환하는 요소를 찾으면 검색을 중지하고 해당 요소를 반환한다.

이 때 반환하는 값은 요소 그 자체이다. 콜백 함수에서 반환하는 것이 true 또는 false가 아니라 요소 자체를 반환해야 한다.

예제)

const numbers = [1,2,3,4,5]

const even = numbers.find((num)=>num%2 === 0);

console.log(even);
//2

위의 예제에서 알 수 있듯이 find() 메서드는 배열 numbers에서 짝수인 첫 번째 요소를 찾아 반환한다.

find()문법 언제 활용하면 좋을까?

특정 조건을 만족하는 첫 번째 요소를 찾을 때

const users = [
	{id:1,name:"Alice"},
	{id:2,name:"Bob"},
	{id:3,name:"Charlie"}
]

const user = users.find(u => u.name === 'Bob');
console.log(user);
//{ id:2,name:'Bob' }

예시로 find()메서드를 이용해 첫 번째 요소를 찾을 때까지 배열을 순회할 필요가 없다.

 

배열에서 값을 찾을 때

배열에서 값을 찾을 때예시로 배열 내에서 특정 값이 있는지 확인할 수 있다.

const numbers = [1,2,3,4,5];

const hasThree = numbers.find(n=>n===3);
console.log(hasThree);

//3

 

객체 배열에서 특정 속성을 찾을 때

예시로 name속성이 Bob인 객체를 찾기

const users = [
	{id:1,name:"Alice"},
	{id:2,name:"Bob"},
	{id:3,name:"Charlie"}
];

const user = users.find(u=>u.name === 'Bob');
cosole.log(user);
//{ id:2,name:"Bob" }

 

객체 배열에서 조건에 따라 여러 값을 찾을 때

예시로 배열 내에서 여러 개의 값을 찾는 경우, filter()와 find()메서드를 조합해 사용할 수 있다.

const numbers = [1,2,3,4,5];

const even = numbers.filter(n=>n%2===0);
const firstEven = even.find(n=>n>2);

console.log(firstEven);
//4

filter()메서드로 배열에서 짝수만 추출한 후 find()메서드를 통해 2보다 큰 첫 번째 요소를 찾는다.

 

반응형