배열에서 특정 값 혹은 인덱스를 찾기 위해 find()
와 findIndex()
메서드를 사용할 수 있다.
arr.find(callback(element, index, array), thisArg)
찾는 값들 중에서 만족하는 첫 번째 요소를 반환한다. 찾는 값이 없다면 undefined
를 반환한다.
const arr = [1, 2, 3, 4, 5];
arr.find(element => element > 2); // 3
arr.find(element => element === 6); // undefined
객체가 담긴 배열도 가능하다. 객체의 속성을 이용해 값을 도출할 수 있으며, 메서드를 사용하는 방법에는 두 가지가 있다.
const weathers = [
{name: 'spring'},
{name: 'summer'},
{name: 'autumn'},
{name: 'winter'}
];
//1 - 함수 사용
function findSummer(val){
return val.name === 'summer';
}
weathers.find(findSummer)
//2 - 화살표 함수 사용
weathers.find(val => val.name === 'winter'); // {name: 'winter'}
첫 번째 방법은 함수를 사용하여 return 값에 특정 값이 반환되게 하는 것이다.
두 번째 방법은 화살표 함수를 통해 특정 값을 설정할 수 있다.
arr.findIndex(callback(element, index, array), thisArg)
찾는 값 대신 찾는 값의 인덱스를 반환하는 메서드다. 만족하는 값이 없으면 -1을 반환한다.
const arr = [1, 2, 3, 4, 5];
arr.findIndex(element => element > 2); // 1
arr.findIndex(element => element === 6); // -1
객체의 배열도 find()
와 동일하게 사용 가능하다.
const weathers = [
{name: 'spring'},
{name: 'summer'},
{name: 'autumn'},
{name: 'winter'}
];
weathers.findIndex(val => val.name === 'winter'); //3
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/find
https://cocobi.tistory.com/123?category=909654
https://gurtn.tistory.com/78