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]