盒子
盒子
文章目录
  1. Array.prototype.reduce
    1. 1、数组求和
    2. 2、将二维数组转成一位数组
    3. 3、计算数组中元素出现的个数
    4. 4、数组去重

Array.prototype.reducer用法

Array.prototype.reduce

1
2
3
reduce(function(accumulator, currentValue, index, array) {

})

第一个参数是累计的值,第二个参数是当前的值,第三个是下标,第四个是数组本身
reduce还可以传入一个初始值
用途:

1、数组求和

1
2
3
[1, 2, 3, 4].reduce(function(sum, cur) {
return sum + cur;
})

2、将二维数组转成一位数组

1
2
3
[[1, 2], [3, 4]].reduce(function(a, b) {
return a.concat(b);
});

3、计算数组中元素出现的个数

1
2
3
4
5
6
7
8
9
10
var names = ['zzj', 'alin', 'zzj', 'alin', 'aaa'];
var returnObj = names.reduce(function(allNames, name) {
if(name in allNames) {
allNames[name] ++ ;
} else {
allNames[name] = 1;
}
return allNames;
}, {});
console.log(returnObj); // {zzj: 2, alin: 2, aaa: 1}

4、数组去重

1
2
3
4
5
6
7
8
var arr = [1, 2, 3, 4, 5, 2, 3, 4, 5, 6];
var retArray = arr.reduce(function(arr, ele) {
if(arr.indexOf(ele) === -1) {
arr.push(ele);
}
return arr;
}, []);
console.log(retArray); // [1, 2, 3, 4, 5, 6]

btw:数组去重可以用Set

1
var result = Array.from(new Set([1, 2, 3, 4, 5, 2, 3, 4, 5, 6]));

支持一下
扫一扫,支持 Alin
  • 微信扫一扫
  • 支付宝扫一扫