JavaScript _ reduce, sort

예진·2023년 6월 30일

개인 공부

목록 보기
4/15

🔥 Array.prototype.reduce()

: 배열의 각 요소에 대해 주어진 reducer(리듀서) 함수를 실행하고, 하나의 결과값 반환

reducer (리듀서) : 배열의 내장함수 중 하나로 누적값을 계산하는데 사용
=> 배열을 순서대로 불러 각 요소에 대해 callback 함수를 실행한 결과를 누적한 값 반환
arr.reduce(callback[, initialValue])

- 매개변수 (parameter)

callback : 배열의 각 요소에 대해 실행할 함수 아래 4가지 인자를 받는다.

  1. 누적값 (acc), accumulator : 반환값 누적
  2. 현재값 (cur), currentValue : 처리할 현재 요소
  3. 인덱스 (idx), currentIndex : 처리할 현재 요소의 인덱스 - Optional
    ( + initialValue 작성된 경우 0부터 시작, 아닐 경우 1부터 시작 )
  4. 원본 배열(src), array : 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

🔥 Array.prototype.sort()

: 배열의 요소를 적절한 위치에 정렬한 후 배열 반환

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 ]
profile
😊

0개의 댓글