728x90
#문제
객체를 요소로 갖는 배열과 문자열을 입력받아 각 요소의 'animal' 속성값이 문자열과 일치할 경우, 해당 요소의 'score' 속성값을 모두 더한 값을 리턴해야 합니다.
빈 배열을 입력받은 경우, 0을 리턴해야 합니다.
#예시
const records = [
{
score: 63,
animal: 'dog',
},
{
score: 75,
animal: 'dog',
},
{
score: 87,
animal: 'cat',
},
{
score: 98,
animal: 'cat',
},
{
score: 24,
animal: 'dog',
},
];
let output = calculateScore(records, 'cat');
console.log(output); // --> 185
output = calculateScore(records, 'dog');
console.log(output); // --> 162
output = calculateScore([], 'dog');
console.log(output); // --> 0
output = calculateScore(records, 'mouse');
console.log(output); // --> 0
#정답
function calculateScore(records, value) {
//입력: 배열안에 객체집단이있다.
//animals === value 이면
//records.score를 모두 더한값을 리턴.
return records.reduce((acc, cur) => {
if (cur.animal === value) {
acc= acc + cur.score;
}
return acc;
}, 0);
}
728x90
'코플릿 기록 > JavaScript' 카테고리의 다른 글
고차함수 28번 (0) | 2023.01.15 |
---|---|
고차함수 27번 ★ (0) | 2023.01.15 |
고차함수 24번 (0) | 2023.01.15 |
고차함수 22번 (0) | 2023.01.15 |
고차함수 21번 (0) | 2023.01.15 |