문제
객체를 요소로 갖는 배열과 문자열을 입력받아 각 요소의 'animal' 속성값이 문자열과 일치할 경우, 해당 요소의 'score' 속성값을 모두 더한 값을 리턴해야 합니다.
입력
인자1 : records 객체를 요소로 갖는 배열
인자2 : string 타입의 문자열
출력
number 타입을 리턴해야 합니다.
입출력 예시
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) {
// reduce를 통해 모든 배열을 순회하면서 value와 일치하는 객체의 animal을 골라낸 뒤 합계를 구한다.
const sum = records.reduce(function(acc, cur){
if (cur.animal === value){
return acc + cur.score;
}
else{//일치하지 않으면 acc만 반환
return acc;
}
},0);
return sum;
}
Javascript 고차 함수문제(9) - getLengthOfLongestElement (0) | 2022.12.10 |
---|---|
Javascript 고차 함수문제(8) - getLongestElement (0) | 2022.12.10 |
Javascript 고차 함수문제(6) - classicMovies (0) | 2022.12.10 |
Javascript 고차 함수문제(5) - getOnlyAllowedToDrink (0) | 2022.12.10 |
Javascript 고차 함수문제(4) -getLengthOfElements (0) | 2022.12.10 |