배열이란 무엇입니까? - 4부
Array.reduce(): 추가
배열의 단일 값은 reduce() 함수를 사용하여 계산할 수 있습니다. 즉, 배열은 단일 값으로 압축됩니다.
예시:
const numbers = [20, 13, 5, 31];
const sum = numbers.reduce((accumulator, current) => {
return accumulator + current;
}, 0);
단계별로 살펴보겠습니다.
.reduce()
배열에서 numbers
메서드를 호출합니다. numbers.reduce()
의 결과를 sum
라는 새 변수에 할당합니다. 감속기
예시:
(accumulator, current) => {
return accumulator + current;
}
이것은 배열의 각 요소에 적용되는 콜백이지만 이 콜백에는
accumulator
및 current
두 개의 매개변수가 있습니다.reduce 함수가 마지막으로 계산한 마지막 값은 항상
accumulator
에서 참조합니다. 또한 current
라는 용어는 배열의 단일 요소를 나타냅니다.예시:
const numbers = [20, 13, 3, 31];
const sum = numbers.reduce((accumulator, current) => {
return accumulator + current;
}, 0);
상해:
콜백이 처음 실행될 때 accumulator는 0(초기값 때문에)으로 설정되고 current는 배열의 첫 번째 요소로 설정됩니다. 결과적으로 누산기는 0이고 전류는 20입니다.
그런 다음 0 + 20 = 20인
accumulator + current
를 출력합니다. accumulator
의 업데이트된 값은 20입니다.콜백은
current = 13
(배열의 두 번째 항목) 및 accumulator = 20
로 두 번째로 실행됩니다. 우리는 accumulator + current
, 즉 20 + 13 = 33
를 반환합니다. accumulator
는 33입니다.콜백은
current = 3
(배열의 세 번째 항목) 및 accumulator = 33
로 세 번째로 실행됩니다. 우리는 accumulator + current
, 즉 33 + 3 = 36
를 반환합니다. accumulator
는 36입니다.콜백은
current = 31
(배열의 네 번째 항목) 및 accumulator = 36
로 네 번째로 실행됩니다. 우리는 accumulator + current
, 즉 36 + 31 = 67
를 반환합니다. accumulator
는 67입니다.배열에는 추가 항목이 없으므로 감소는
accumulator
의 최종 값인 67을 생성합니다.초기 값
Reducer
및 initialValue
는 .reduce()
방법이 허용하는 두 개의 매개변수입니다(reducer
의 두 매개변수, 즉 accumulator
및 current
와 혼동하지 마십시오). 콜백이 처음 실행될 때 accumulator
에 할당하는 값을 initialValue
라고 합니다.콜백이 처음 실행될 때 JavaScript는 자동으로
initialValue
를 가져와 accumulator
의 reducer
매개변수로 전달합니다.Array.reduce(): 곱셈
예시:
const numbers = [1, 2, 5];
const finalResult = numbers.reduce((accumulator, current) => {
return accumulator * current;
}, 1);
console.log(finalResult); // 10
곱셈의 초기값
0
값으로 곱셈을 시작할 수 없습니다. 이는 숫자에 0을 곱하면 01 * 0 = 0
이 생성되기 때문입니다. 어떤 숫자에 1을 곱해도 결과는 같으므로 숫자1
는 곱셈에서 중립 승수 역할을 합니다. 예: 1 * 1 = 1
.이것이 곱셈에 시작 값
1
을 사용하고 덧셈에 시작 값0
을 사용하는 이유입니다.예시:
const numbers = [1, 2, 5];
const finalResult = numbers.reduce((accumulator, current) => {
return accumulator * current;
}, 1);
상해:
콜백이 처음 실행될 때 accumulator는 1로 설정되고(초기 값으로 인해) current는 배열의 첫 번째 요소로 설정됩니다. 결과적으로
accumulator
는 1이고 current
는 1입니다.그런 다음 1 * 1 = 1인
accumulator * current
를 출력합니다. accumulator
의 업데이트된 값은 1입니다.콜백은
current = 2
(배열의 두 번째 항목) 및 accumulator = 1
로 두 번째로 실행됩니다. 우리는 accumulator * current
, 즉 1 * 2 = 2
를 반환합니다. accumulator
는 2입니다.콜백은
current = 5
(배열의 세 번째 항목) 및 accumulator = 2
로 세 번째로 실행됩니다. 우리는 accumulator * current
, 즉 2 * 5 = 10
를 반환합니다. accumulator
는 10입니다..reduce()
의 결과는 변수 finalResult에 저장되는 10입니다.아래 댓글 섹션에서 의견을 공유해 주세요. 당신의 생각을 듣고 싶습니다. 아니면 들러서 '👋'라고 말해주세요.
Reference
이 문제에 관하여(배열이란 무엇입니까? - 4부), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jinchoo/what-are-arrays-part-iv-32hf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)