reduce

  • 数组里所有值的和
var sum = [0, 1, 2, 3].reduce(function (a, b) {
  return a + b;
}, 0);
// sum is 6
  • 你也可以写成箭头函数的形式:
var total = [ 0, 1, 2, 3 ].reduce(
  ( acc, cur ) => acc + cur,
  0
);
  • 将二维数组转化为一维
var flattened = [[0, 1], [2, 3], [4, 5]].reduce(
  function(a, b) {
    return a.concat(b);
  },
  []
);
// flattened is [0, 1, 2, 3, 4, 5]
  • 你也可以写成箭头函数的形式:
var flattened = [[0, 1], [2, 3], [4, 5]].reduce(
 ( acc, cur ) => acc.concat(cur),
 []
);
  • 计算数组中每个元素出现的次数
var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];

var countedNames = names.reduce(function (allNames, name) { 
  if (name in allNames) {
    allNames[name]++;
  }
  else {
    allNames[name] = 1;
  }
  return allNames;
}, {});
// countedNames is:
// { 'Alice': 2, 'Bob': 1, 'Tiff': 1, 'Bruce': 1 }
  • 加法
var arr = [1,2,3,4];
arr.reduce(function(pre,cur){return pre + cur});
  • 求乘积
var pro = arr.reduce(function(pre,cur,index,arr){return pre * cur})

求最大值(最小值)

var max = a.reduce(function(pre,cur,inde,arr){return pre>cur?pre:cur;});
var max = a.reduce(function(pre,cur,inde,arr){return pre

你可能感兴趣的:(reduce)