문제
학생의 정보가 담긴 객체를 요소로 갖는 배열을 입력받아 아래 조건에 맞게 변형된 배열을 리턴해야 합니다.
입력
인자 1 : students
출력
let studentList = [
{
name: 'Anna',
gender: 'female',
grades: [4.5, 3.5, 4],
},
{
name: 'Dennis',
gender: 'male',
country: 'Germany',
grades: [5, 1.5, 4],
},
{
name: 'Martha',
gender: 'female',
grades: [5, 4, 4, 3],
},
{
name: 'Brock',
gender: 'male',
grades: [4, 3, 2],
},
];
let output = studentReports(studentList);
console.log(output); // -->
[
{ name: 'Anna', gender: 'female', grades: 4 },
{ name: 'Martha', gender: 'female', grades: 4 },
];
풀이코드 설명
function studentReports(students) {
//students객체의 모든 요소들을 순회합니다.
// 그중 성별이 여성인 요소만 반환합니다.
const femail = students.filter(function(el){
return el.gender === 'female';
})
return femail.map(function(el){
//위에서 만든 femail배열에서 grades 배열안의 모든 요소들을 순회하면서 합계와 평균을 구한 뒤 평균을 반환합니다.
const sum = el.grades.reduce(function(acc,cur){
return acc + cur;
},0 )
const avg = sum / el.grades.length;
el.grades = avg;
return el;
});
}
Javascript 재귀 함수문제(3) - drop (0) | 2022.12.11 |
---|---|
Javascript 재귀 함수문제(1) - isOdd (0) | 2022.12.11 |
Javascript 고차 함수문제(11) - findShortestWord (0) | 2022.12.10 |
Javascript 고차 함수문제(10) - joinArrayOfArrays (0) | 2022.12.10 |
Javascript 고차 함수문제(9) - getLengthOfLongestElement (0) | 2022.12.10 |