JavaScript 數(shù)組 reduce() 方法

 JavaScript 數(shù)組對(duì)象

reduce()方法接收一個(gè)函數(shù)作為累加器,數(shù)組中的每個(gè)值(從左到右)開始縮減,最終計(jì)算為一個(gè)值。

reduce()方法為每個(gè)數(shù)組索引執(zhí)行一次回調(diào)函數(shù)。

函數(shù)的返回值存儲(chǔ)在累加器(result)中。

語(yǔ)法:

array.reduce(callback, initialValue)
var nums = [10, 20, 30, 40, 50];
var sum = nums.reduce(getTotal);

function getTotal(x, y) {
return (x + y);
}
測(cè)試看看?/?

瀏覽器兼容性

表格中的數(shù)字指定了完全支持reduce()方法的第一個(gè)瀏覽器版本:

Method
reduce()310.549

參數(shù)值

參數(shù)描述
callback
為數(shù)組中的每個(gè)元素運(yùn)行的函數(shù)。
函數(shù)參數(shù):
  • accumulator(必需)- 函數(shù)的initialValue或先前返回的值

  • element(必填)-數(shù)組中正在處理的當(dāng)前元素

  • index(可選)-數(shù)組中正在處理的當(dāng)前元素的索引

  • array(可選)- 調(diào)用了數(shù)組reduce()

initialValue(可選)用作首次調(diào)用回調(diào)的第一個(gè)參數(shù)的值。 如果未提供初始值,則將使用數(shù)組中的第一個(gè)元素。

技術(shù)細(xì)節(jié)

返回值:減少產(chǎn)生的值
JavaScript版本:ECMAScript 5

更多實(shí)例

本示例刪除數(shù)組中的重復(fù)項(xiàng):

var nums = [10, 20, 10, 20, 13, 5, 4, 5, 13, 4, 4, 4, 4];

let result = nums.sort().reduce((accumulator, current) => {
const length = accumulator.length;
if (length === 0 || accumulator[length - 1] !== current) {
accumulator.push(current);
}
return accumulator;
}, []);

function myFunc() {
   document.getElementById("result").innerHTML = result;
}
測(cè)試看看?/?

reduce()和reduceRight()之間的區(qū)別:

var arr = ['1', '2', '3', '4', '5'];

function funcReduce() {
var val = arr.reduce(function(x, y) {return x + y;});
document.getElementById("result").innerHTML = val;
}

function funcReduceRight() {
var val = arr.reduceRight(function(x, y) {return x + y;});
document.getElementById("result").innerHTML = val;
}
測(cè)試看看?/?

 JavaScript 數(shù)組對(duì)象

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清