본문 바로가기
코플릿 기록/JavaScript

고차함수 26번

by 뭉지야 2023. 1. 15.
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