JavaScript Array reduce() 方法

定义和用法

reduce() 方法将数组缩减为单个值。

reduce() 方法为数组的每个值(从左到右)执行提供的函数。

函数的返回值存储在累加器中(结果/总计)。

注释:对没有值的数组元素,不执行 reduce() 方法。

注释:reduce() 方法不会改变原始数组。

实例

例子 1

从头开始减去数组中的数字:

var numbers = [175, 50, 25];
document.getElementById("demo").innerHTML = numbers.reduce(myFunc);
function myFunc(total, num) {}}
  return total - num;
}

직접 시도해보세요

예제 2

배열의 모든 숫자를 반올림하고 합을 표시합니다:

<button onclick="myFunction()">시도하기</button>
<p>배열의 수들에 대한 합: <span id="demo"></span></p>
<script>
var numbers = [15.5, 2.3, 1.1, 4.7];
function getSum(total, num) {
  return total + Math.round(num);
}
function myFunction(item) {
  document.getElementById("demo").innerHTML = numbers.reduce(getSum, 0);
}
</script>

직접 시도해보세요

문법

array.reduce(function(total, currentValue, currentIndex, arr) initialValue)

파라미터 값

파라미터 설명
function(total, currentValue, index, arr) 必需. 배열의 각 요소에 대해 실행되는 함수

함수 파라미터:

파라미터 설명
total 必需. initialValue 또는 함수가 이전에 반환한 값
currentValue 必需. 현재 요소의 값
index 선택 사항. 현재 요소의 배열 인덱스
arr 선택 사항. 현재 요소가 속한 배열 객체
initialValue 선택 사항. 함수에 전달된 초기 값으로 사용됩니다.

기술 세부 사항

반환 값: 이전 호출된 콜백 함수의 누적 결과를 반환합니다.
제이슈아트 버전: ECMAScript 5

브라우저 지원

표의 숫자는 이 메서드를 완전히 지원하는 첫 번째 브라우저 버전을 나타냅니다.

모든 브라우저가 완전히 지원합니다 reduce() 메서드:

크롬 IE 에지 파이어폭스 사파리 오페라
크롬 3 IE 9 에지 12 파이어폭스 3 사파리 5 오페라 10.5
2009년 6월 2010년 9월 2015년 7월 2009년 1월 2010년 6월 2010년 3월

관련 페이지

강의:제이슈아트 배열

강의:JavaScript 배열 Const

강의:JavaScript 배열 메서드

강의:JavaScript 배열 정렬

강의:JavaScript 배열 반복

매뉴얼:Array.reduceRight() 메서드