민자의 지식창고

Array.prototype.find() 본문

개발노트/Javascript

Array.prototype.find()

전지적민자시점 2021. 4. 13. 09:31

2021.04.12 - [개발노트/Javascript] - Array.prototype.filter()

 

Array.prototype.filter()

시작하며...  map()에 이어 이번에는 filter에 대해 보겠습니다. 조건문에 익숙해졌는데 아래 방법도 많이 써서 익숙해지도록 해야겠습니다. 2021.04.08 - [개발노트/Javascript] - Array-prototype.map() 본론..

laheepapa.tistory.com

 

find() 메소드는 주어진 판별 함수를 만족하는 첫번쨰 요소의 값을 반환합니다. 그런 요소가 없으면, undefined를 반환합니다. 

 

const values = [5,12,8,9];
const found = values.find(el => el>10); // found = [12];

찾는 요소의 값 대신 인덱스를 반환하는 findIndex() 메소드를 찾아보면 됩니다.

const listNumber = values.findIndex(el => el > 10) // listnumber = 3

배열 요소의 위치를 찾고자 하는 경우 Array.prototype.indexOf()를 사용하면 됩니다.

배열 요소가 해당 배열에 존재하는지 확인하고자 하는 경우 Array.prototype.indexOf() 혹은 Array.prototype.includes()를 사용합니다.

 

매개변수

 Callback : 배열의 각 값에 대해 실행할 함수. 

 element : Callback 함수에서 처리 할 요소

 index : 처리할 인덱스 요소 (optional)

 array : find 함수를 호출한 배열

 

find 메소드는 Callback 함수가 참을 반환할때까지 해당 배열의 각 요소에 대해서 callback 함수를 수행합니다. callback은 0부터 length-1까지 배열의 모든 인덱스에 대해 호출되며, 값이 지정되지 않은 요소도 포함하여 모든 인덱스에 대해 호출됩니다. 따라서, 희소 배열(sparse arrays)의 경우에는 값이 지정된 요소만 탐색하는 다른 메소드에 비해 더 비 효율적입니다.

 

배열에서 객체 찾기

var inventory = [
    {name: 'apples', quantity: 2},
    {name: 'bananas', quantity: 0},
    {name: 'cherries', quantity: 5}
];

function findCherries(fruit) {
    return fruit.name === 'cherries';
}

console.log(inventory.find(findCherries)); // { name: 'cherries', quantity: 5 }

var values = inventory.find(el => fruit.name === 'cherries');  //values = { name: 'cherries', quantity: 5 }

 

소수 찾기

function isPrime(element, index, array) {
  var start = 2;
  while (start <= Math.sqrt(element)) {
    if (element % start++ < 1) {
      return false;
    }
  }
  return element > 1;
}

console.log([4, 6, 8, 12].find(isPrime)); // undefined, not found
console.log([4, 5, 8, 12].find(isPrime)); // 5
728x90

'개발노트 > Javascript' 카테고리의 다른 글

Typescript 작성시 안좋은 습관 10가지  (0) 2021.11.04
동기와 비동기  (0) 2021.05.06
Array.prototype.filter()  (0) 2021.04.12
Array-prototype.map()  (0) 2021.04.08
Angular Geolocation API  (0) 2021.02.16