js数组的reduce方法

js数组的reduce方法

arr. reduce( function(prev, cur, index,arr){
}, init);
//或者
arr. reduce( function(prev, cur , index,arr){
},);
复制代码

arr表示将要的原数组(你要操作的原数组);

prev表示上一次调用回调时的返回值,或者初始值init;

cur表示当前正在处理的数组元素;

index表示当前正在处理的数组元素的索引,若提供init 值,则索引为0, 否则索引为1;

init 表示初始值。
常用的参数只有两个: prev和cur

作用

1:数组求和,求乘积。
求积自己推

  var arr = [1, 2, 3, 4]
        var sum = arr.reduce((pre, cur) => {
            return pre + cur
        })
        console.log(sum);
复制代码

2:计算数组中每个元素出现的次数

  let sb=['sb','sb','dsb','sb']
        let nameNum=sb.reduce((pre,cur)=>{
            if(cur in pre){
                pre[cur]++
            }else{
                pre[cur]=1
            }
            return pre
        },{})
        console.log(nameNum);
复制代码

3:数组去重

  let sb = ['sb', 'sb', 'dsb', 'sb']
        let resNum = sb.reduce((pre, cur) => {
            if (!pre.includes(cur)) {
                return pre.concat(cur)
            } else {
                return pre
            }

        }, [])
        console.log(resNum);
复制代码

4:将二维数组转化成一维数组

5:将多维数组转化成一维数组

ps:4和5几乎一毛一样

const arr = [1, 2, 2, 3, [9, 8, 7[5, 2, 1]]]
const flatten = arr => {
    return arr.reduce(
        (pre, cur) => {
            return pre.concat(Array.isArray(cur) ? flatten(cur) : cur);
        }, [])
}
const res4 = flatten(arr)

复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享