: 배열의 각 요소에 대해 주어진 reducer(리듀서) 함수를 실행하고, 하나의 결과값 반환
reducer (리듀서) : 배열의 내장함수 중 하나로 누적값을 계산하는데 사용
=> 배열을 순서대로 불러 각 요소에 대해 callback 함수를 실행한 결과를 누적한 값 반환
arr.reduce(callback[, initialValue])
callback : 배열의 각 요소에 대해 실행할 함수 아래 4가지 인자를 받는다.
reduce()를 호출한 배열 - Optional+ initialValue : 리듀서가 실행될 때 초기 acc 값으로 설정되는 원시값 - Optional
초기값을 제공하지 않으면 배열의 첫 번째 요소 사용, 빈 배열에서 초기값 없이 reduce() 호출하면 에러 발생
// ex. 배열의 모든 값 더하기
const array1 = [1, 2, 3, 4];
const initialValue = 0;
const sum = array1.reduce(
(acc, cur) => acc + cur,
initialValue
);
console.log(sum); // 10
: 배열의 요소를 적절한 위치에 정렬한 후 배열 반환
arr.sort([compareFunction]) - optional
- compareFunction : 정렬 순서를 정의하는 함수, 생략하면 요소를 문자열로 변환하고 유니 코드 포인트 순서로 문자열을 비교하여 정렬한다.
// 오름차순 정렬
let arr = [ 5, 3, 4, 1, 2 ];
arr.sort((a, b) => a - b);
console.log(arr); // 반환 값 [ 1, 2, 3, 4, 5 ]
// 내림차순 정렬
let arr = [ 2, 4, 5, 1, 3 ];
arr.sort((a, b) => b - a);
console.log(arr); // 반환 값 [ 5, 4, 3, 2, 1 ]