[TIL 240104] JavaScript 화살표 함수 표현식과 reduce()

미리내·2024년 1월 4일

TIL

목록 보기
1/1

const numbers = [10, 20, 30, 40, 50];

// reduce(callback, initialValue)
// reduce((accumulator, current, index, array) => {...}, initialValue);

const sum = (array) => (
  array.reduce((accumulator, current) => accumulator + current)
);

const avg = (array) => (
  sum(array) / array.length
);

// 초깃값(init)을 설정하지 않으면 accumulator는 index[0], current는 index[1]
// 초깃값(init)을 설정하지 않으면 index는 1부터 시작하므로 초기 index - 1은 0

const min = (array) => (
  array.reduce((accumulator, current, index, array) => (
    current <= array[index - 1] ? current : accumulator
  ))
);

const max = (array) => (
  array.reduce((accumulator, current, index, array) => (
    current >= array[index - 1] ? current : accumulator
  ))
);

console.log(sum(numbers));	// 150
console.log(avg(numbers));	// 30
console.log(min(numbers));	// 10
console.log(max(numbers));	// 50

0개의 댓글