1.reduce在纯数组中应该如何使用
let arr = [1,2,3,4,5]
let sum = arr.reduce((prev,curr)=>{
return prev + curr
},0)
2.reduce在数组引用类型中的使用
let countIt = list.reduce((prev,curr) => {
return prev + curr.count * curr.price
},0)
console.log(countIt);
3.利用reduce对数组进行扁平化
let arr2 = [[1, 2, 8], [3, 4, 9], [5, 6, 10]];
let res = arr2.reduce((prev,curr) => {
prev.concat(curr)
},[])
console.log(res)
4.利用reduce对多维数组进行扁平化
const arr5 = [1, [2, [3, 4]]];
function flatten(arr){
return arr.reduce((prev,curr) => {
return prev.concat(Array.isArray(curr) ? flatten(curr) : curr)
},[])
}
console.log(flatten(arr5))
console.log(arr5.flat(Infinity));
toString降维为1,2,3,4然后用split转化为字符串数组,用map遍历每一项 +item把每一项从字符串变为数字
const flatten = (arr) => arr.toString().split(',').map((item) => +item);
const arr = [1, [2, [3, 4]]];
console.log(flatten(arr));