1. map을 이용한 객체의 알맞은 키값을 수정하여 원래 객체를 리턴하기.
- 고차 함수 안에서 원하는 데이터를 가져와 알맞게 수정한 후에 다시 리턴하여 값을 수정하게 된다.
- 키값이 배열인 데이터를 받아서 더해 평균을 구해 다시 할당한 후에 수정된 객체를 리턴할 수 있다.
- 아래의 예시 문제를 볼 수 있다.
- 학생들의 이름(name)과 성적(grades)을 가진 객체들을 입력받아 성적을 평균으로 바꿔서 리턴한다.
function studentAvgGrades(students) {
students.map(students => { // 모든 학생들의 정보. 즉, 객체안의 키들의 값을 수정하기 위해 map 으로 모든 키를 선택한다.
let sumGrades = students.grades.reduce((acc, cur) => acc + cur) // 안의 성적들을 모두 더하기 위해 성적을 뽑아 reduce로 또 더한다.
let avgGrades = sumGrades / students.grades.length // 다 더해준 성적들을 평균으로 만들기 위해 길이(더한 성적의 수)로 나눠준다.
students.grades = avgGrades; // 학생들의 성적 배열이었던 것을 구해준 평균으로 할당한다.
})
return students; // 할당을 다시 해준 학생들의 정보가 담긴 객체를 리턴한다.
}
- 이처럼, 내부에 map 으로 객체의 값을 수정하기 위한 준비를 하고, 안에서 데이터를 가공하여 다시 할당하였다.
- 이중 고차 함수와 함께 다양한 방법으로 데이터를 가공할 수 있음을 알게 되었다!
- 조금 더 익숙하게 할 수 있도록 연습하면 좋겠다.