객체를 요소로 가지는 배열에서 값 찾기(feat. some()과 findIndex())

이예빈·2022년 8월 31일
0

JavaScript

목록 보기
16/26
post-thumbnail

Array.prototype.some(callbackFn)


some() 메서드는 배열의 요소 중 인자로 전달된 함수의 조건을 충족하는 요소가 있는지 여부를 Boolean 타입으로 반환한다.

즉 콜백함수의 테스트를 통과하면 true를 리턴하고,
통과하지 못하면 false를 리턴한다.

아래의 예시와 같이 객체를 요소로 가지는 배열에서 특정 값을 가진 객체를 포함하는지 여부를 확인할 수 있다.

// 장바구니에 들어있는 상품 중에 상품 id가 1234인 상품이 있나 확인할 때
let cartItems = [{itemName: "반포자이", itemId: 1234}, ...기타등등]
console.log(cartItems.some(v => v.itemId === 1234)); // true

Array.prototype.findIndex(callbackFn)


findIndex()메서드는 배열의 요소 중 인자로 전달된 함수의 조건을 충족하는 첫 번째 요소의 인덱스를 반환한다. 만족하는 요소가 없으면 -1을 반환한다.

아래의 예시와 같이 객체를 요소로 가지는 배열에서 특정 값을 가진 객체의 인덱스를 확인할 수 있다.

// 장바구니에 들어있는 상품 중에 상품 id가 1234인 상품의 인덱스를 확인할 때
let cartItems = [
  {itemName: "한남더힐", itemId: 1111},
  {itemName: "반포자이", itemId: 1234}, ...기타등등]
console.log(cartItems.findIndex(i => i.itemId === 1234)); // 1

참고


https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex

profile
temporary potato

0개의 댓글