전보다 고차함수를 좀 이해해서 그런지 문제는 다 풀긴 했다. 하지만 map,filter,reduce를 사용함에 있어서 return으로 이어갈 때도 있고 , 변수를 선언하고 그 안에서 사용할때가 있는데 그건 아직 완벽하게 이해를 하지 못한 것 같다.
[1, 2, 3, 4].reduce((acc, cur) => {
// 누적값이 acc + cur 이길 원해
return acc + cur;
// 누적값이 acc = acc + cur 이길 원해
// return acc = acc + cur
// 두가지 모두 궁극적으로 acc(누적값)을 반환하는 것이다.
// 어떤 걸 리턴하던지, acc 누적값이 된다.
}, ""); // "1234"
// reduce를 사용해서 배열 => 문자열로 하고 싶으면 초기값을 빈 문자열로 두면 된다.
// 배열 => 숫자 초기값을 숫자
// 배열 => 객체 초깃값을 객체
// acc 누적 => 결국엔 반환값이다. => 자료형을 결정해 놓고 reduce를 사용하면된다.