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 オプション。関数に初期値として渡される値。

技術的詳細

返り値: 前回の呼び出しでコールバック関数が返した累積結果を返します。
JavaScript バージョン: ECMAScript 5

ブラウザのサポート

テーブルの数字には、このメソッドを完全にサポートする最初のブラウザバージョンが記載されています。

すべてのブラウザが完全にサポートしています reduce() 方法:

Chrome IE Edge Firefox Safari Opera
Chrome 3 IE 9 Edge 12 Firefox 3 Safari 5 Opera 10.5
2009 年 6 月 2010 年 9 月 2015 年 7 月 2009 年 1 月 2010 年 6 月 2010 年 3 月

関連ページ

チュートリアル:JavaScript 配列

チュートリアル:JavaScript 配列 Const

チュートリアル:JavaScript 配列メソッド

チュートリアル:JavaScript 配列のソート

チュートリアル:JavaScript 配列のイテレーション

マニュアル:Array.reduceRight() メソッド