数组:[1, 2, [3, 4], 5, [6, [7, 8, [9, [10, 11], 12]]]]
1.扁平化
function flat(blankArray,data){
data.map(item=> Object.prototype.toString.call(item)==="[object Array]"? flat(blankArray,item): blankArray.push(item))
return blankArray
}
//使用
flat([],[1, 2, [3, 4], 5, [6, [7, 8, [9, [10, 11], 12]]]])
2.柯里化扁平化方法
function curry(func) {
return function curried(...args) {
if (args.length >= func.length) {
return func.apply(this, args);
} else {
return function(...args2) {
return curried.apply(this, args.concat(args2));
}
}
}
}
function flat(blankArray,data){
data.map(item=> Object.prototype.toString.call(item)==="[object Array]"? flat(blankArray,item): blankArray.push(item))
return blankArray
}
//使用
let curryFlat=curry(flat)
curryFlat([])([1, 2, [3, 4], 5, [6, [7, 8, [9, [10, 11], 12]]]])