js数组的reduce方法

js数组的reduce方法
arr.reduce(function(prev,cur,index,arr){
   return 操作
},init)
会对数组的每一项进行操作,对数组所有内容进行汇总
arr表示要处理的数组
prev表示上一次调用回调时的返回值,或者初始值Init
cur表示当前正在处理的数组元素
index表示当前正在处理的数组元素的索引,若提供init值,则索引从0开始;否则索引从1开始
init表示初始值
 
常用的参数有prev和cur
可用于:

 

 数组去重

 

        var arr1 = [1, 2, 3, 4, 1, 3]
        const newArr1 = arr1.reduce(function(prev, cur) {
            if (prev.indexOf(cur) !== -1) {
                return prev
            } else {
                return prev.concat(cur)
            }
        }, [])
        console.log(newArr1)  //[1,2,3,4]

 数组扁平化

        var arr = [1, [2, 3, [4, 5]], 6]

        const newArr = function(arr) {
            return arr.reduce(function(prev, cur) {
                return prev.concat(Array.isArray(cur) ? newArr(cur) : cur)
            }, [])
        }
        var arr1 = newArr(arr)
        console.log(arr1) //[1,2,3,4,5,6]

 

 

 

 

posted @ 2021-03-25 14:26  孙淡策  阅读(109)  评论(0)    收藏  举报