数组的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 @ 2023-02-20 23:00  小白字太白  阅读(60)  评论(0)    收藏  举报