美文网首页
JavaScript中reduce函数用法举例

JavaScript中reduce函数用法举例

作者: 晓晓_1931 | 来源:发表于2022-11-08 16:42 被阅读0次

reduce()函数会将数组中的每个元素执行一个自定义操作(而且上一次的输出会作为下一次的一个输入),将其结果汇总为单个值返回。

数组名.reduce(function(accumulator, currentValue, currentIndex, arr), initialValue);

/*
accumulator: 必需。累计器
currentValue: 必需。当前元素
currentIndex: 可选。当前元素的索引;
arr: 可选。要处理的数组
initialValue: 可选。传递给函数的初始值,相当于accumulator的初始值
*/

例一:数组求和

let arr = [1, 2, 3, 4, 5];
function add(sum, curr) {   //自定义操作函数
        return sum + curr
}
var a = arr.reduce(add, 0);
console.log(a);             // 得到15

例二:求数组最大值

let arr = [23, 123, 342, 12]; 
function maxArr(pre, cur, index, arr) { //自定义操作函数
        return pre > cur ? pre : cur
}
let max = arr.reduce(maxArr);
console.log(max);                       //得到342

例三:统计字符串中字符出现的次数

let str = 'abcdfaabc';
function countStr(res, cur) {
    res[cur] ? res[cur] ++ : res[cur] = 1 // 如果cur第一次出现,记为1 否则记录数+1
    return res;                          
}
let countArr = str.split('').reduce(countStr, {})  
console.log(countArr);

例四:去掉数组中的重复元素

let arr = [1, 2, 3, 3, 3, 4, 4, 1]
function delRepeat(pre,cur)  {
        if(!pre.includes(cur)){
            return pre.concat(cur)       // 合并pre 与 cur, 并返回一个新数组
        }else{
            return pre
        }
}
let newArr = arr.reduce(delRepeat,[]) 
console.log(newArr);

参考资料:https://zhuanlan.zhihu.com/p/65235741

相关文章

网友评论

      本文标题:JavaScript中reduce函数用法举例

      本文链接:https://www.haomeiwen.com/subject/nsyntdtx.html