cards는 여러 card 객체들로 이루어진 배열이다.
[{}, {}, {}] 요렇게 생긴!!
cateIdArr의 각 요소의 값을 category_id로 가지고 있는 card만을 필터하려고 했다.
필터를 하면 원치 않는 객체가 빠진 [{}] 이 모양 그대로 유지되어야하는데 자꾸 배열 안에 또 배열 안에 객체가 하나씩 들어있는 구조로 출력되었다...;;;
cateIdArr = [3, 4]
const arr = cateIdArr.map((cateId) =>
cards.filter((card) => card.category_id === cateId)
);
console.log('arr ', arr);
출력 결과
map과 filter는 모두 배열을 리턴한다!
map이 forEach와 달리 배열을 리턴하는 것은 알고 있었는데, filter가 배열을 리턴하는 지 몰랐기 때문에 왜 배열 안에 각 배열이 들어간 구조로 데이터가 출력되는지 이해할 수 없었다.
역시 MDN을 잘봐야 ㅠㅠ..
const arr = cateIdArr.map((cateId) =>
cards.filter((card) => card.category_id.includes(cateId))
);
출력 결과
const arr = cards.filter((card) => cateIdArr.includes(card.category_id));
console.log('arr ', arr);