js 数组常用方法reduce() 别只用forEach()啦

语法

arr.reduce(callback,[initialValue])
//callback的四个参数:pre,cur,index,arr
//分别表示:上一次调用回调返回的值,当前被处理的元素,当前元素的索引,要处理的数组

数组求和/积

let arr = [1,2,3,4,5];
// 数组求和
let sum = arr.reduce((x,y)=>x+y);
console.log(sum); //15

// 数组求乘积
let mul = arr.reduce((x,y)=>x*y);
console.log(mul); //120

数组去重

// 数组去重
let arr = [1,1,2,3,3,4]
let array = arr.reduce((pre,cur)=>{
     if(pre.includes(cur)){
         return pre
     }else{
         return pre.concat(cur)
     }
},[])
console.log(array);//[1,2,3,4]

计算元素出现次数

// 计算次数
let arr = ['A','B','C','C','A']
let arrtime = arr.reduce((pre,cur)=>{
    if(cur in pre){
        pre[cur]++
    }else{
        pre[cur] = 1
    }
    return pre
},{})
console.log(arrtime);//{A: 2, B: 1, C: 2}

对象内属性求和

// 对象内属性求和
let arr = [{
    fruit:'apple',
    price:5
},
{
    fruit:'banana',
    price:8
},
{
    fruit:'orange',
    price:9
}]
    let sum = arr.reduce((pre,cur)=>{
    return pre+cur.price
},0) //设置初始值防止报错 从0开始循环
console.log(sum);//22

二维数组转化为一维数组

// 二维数组转化为一维数组
let arr = [[1,2,3],[4,5]]
let newarr = arr.reduce((pre,cur)=>{
    return pre.concat(cur)
},[])
console.log(newarr);//[1, 2, 3, 4, 5]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值