let arr = [0, 10, 20, 30, 40];
//콜백 함수는 누산값과 현재값을 비교해 둘 중 큰 값을 반환한다.
//반환된 값이 새로운 누산값이 된다.
let maxNum = arr.reduce((acc, cur) => Math.max(acc, cur));
console.log(maxNum); //40
//acc의 초기값을 설정한 경우
let maxNumWithInit = arr.reduce((acc, cur) => Math.max(acc, cur), 100);
console.log(maxNumWithInit); //100
출처
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce