数组的reduce方法 - 累积运算

参数描述
function(total,currentValue, index,arr) 必需。用于执行每个数组元素的函数。
函数参数:
参数描述
total 必需。初始值, 或者计算结束后的返回值。
currentValue 必需。当前元素
currentIndex 可选。当前元素的索引
arr 可选。当前元素所属的数组对象。
initialValue 可选。传递给函数的初始值

 

语法:

array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

// 求和
let arr = [7, 10, 3, 2]

        let resultOne = arr.reduce((sum, value) => {
            sum += value
            return sum
        }, 0)
        console.log(resultOne);
// 拼接字符串
        let brr = ['小明', '小红', '小刘', '小李', '小赵']

        let result2 = brr.reduce((str, value) => {
            return str += value
        }, '')
        console.log(result2);
复制代码
// 求出每个人的年龄和
        let crr = [
            {
                name: "小明",
                age: 19
            },
            {
                name: '小红',
                age: 10
            },
            {
                name: '小青',
                age: 39
            },
            {
                name: '小爱',
                age: 15
            }
        ]
        
        let result3 = crr.reduce((ageSum, obj) => {
           return ageSum += obj.age
        }, 0)
        console.log(result3);
复制代码
复制代码
//  求出年龄小于18岁的人的年龄和
        let drr = [
            {
                name: "小明",
                age: 19
            },
            {
                name: '小红',
                age: 10
            },
            {
                name: '小青',
                age: 39
            },
            {
                name: '小爱',
                age: 15
            }
        ]

        let result4 = drr.reduce((sum, obj) => {
            if (obj.age <= 18) {
                sum += obj.age;
            }

            return sum; // 无论加不加, 都要把return给下一次循环函数体独立执行时, sum的初值
        }, 0)
        console.log(result4);
复制代码
复制代码
//数组去重
        let arrTest=[1,3,3,5,2,3,4,7]
       let resArr= arrTest.reduce((total,current,index)=>{
        if (!total.includes(current)) {
            return total.concat(current)
        }else{
            return total
        }
       },[])
       console.log(resArr)
复制代码

更多高级用法 期待小伙伴门自己去开发了



posted @   小白字太白  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示