다음과 같은 객체 배열이 있다고 가정해 보겠습니다. -
const arr = [{ country: "cananda", count: 2 }, { country: "jamaica", count: 2 }, { country: "russia", count: 1 }, { country: "india", count: 3 }, { country: "spain", count: 2 }, { country: "portugal", count: 1 }, { country: "italy", count: 1 }];
우리는 이 배열을 가져와서 매핑하고 각 특정 개체에 대해 "count" 횟수만큼 반복되는 국가 이름을 가진 문자열 배열을 반환하는 함수를 작성해야 합니다.
따라서 이 객체에 대한 함수의 출력은 다음과 같아야 합니다. -
['canada', 'canada', 'jamaica', 'jamaica', 'russia', 'india', 'india', 'india','spain', 'spain','portugal', 'italy']
이 함수의 코드를 작성해 봅시다. 여기서 Array.prototype.reduce() 메서드를 사용할 것입니다 -
예시
const arr = [{ country: "canada", count: 2 }, { country: "jamaica", count: 2 }, { country: "russia", count: 1 }, { country: "india", count: 3 }, { country: "spain", count: 2 }, { country: "portugal", count: 1 }, { country: "italy", count: 1 }]; const repeatCount = (arr) => { return arr.reduce((acc, val) => { let { count, country } = val; while(count--){ acc.push(country); } return acc; }, []); }; console.log(repeatCount(arr));
출력
콘솔의 출력은 -
[ 'canada', 'canada', 'jamaica', 'jamaica', 'russia', 'india', 'india', 'india', 'spain', 'spain', 'portugal', 'italy' ]