const reduce = (f, acc, arr) => {
if (arr.length === 0) return acc;
const [head, ...tail] = arr;
return reduce(f, f(head, acc), tail);
};
// 问题九: 将多层数组转换成一层数组
const nestedArr = [1, 2, [3, 4, [5, 6]]];
// const flat = arr => arr.reduce((a,b) => a.concat(Array.isArray(b) ? flat(b) : b),
// []
// )
function flat(arr){
return arr.reduce(function(a,b){
return a.concat(Array.isArray(b) ? flat(b) : b);
},[]);
}
// function flat2(arr){
// var narr = arr.reduce(function(a,b){
// a.concat(Array.isArray(b) ? flat(b) : b)
// },[])
// return narr
// }
console.log(flat(nestedArr))
// const flatten = arr =>
// arr.reduce(
// (flat, next) => flat.concat(Array.isArray(next) ? flatten(next) : next),
// []
// );
// function flat(arr){
// function reduce(flat,next){
// var newArr = flat.concat(Array.isArray(next) ? flat(next) : next)
// return newArr;
// }
// }
// console.log(flat(nestedArr))
// var red = [[0, 1], [2, 3], [4, 5]].reduce(function(a, b) {
// return a.concat(b);}, []);
// console.log(red)
// // VM291:4 (6) [0, 1, 2, 3, 4, 5]
// var arr1 = [1,2]
// var arr2 = [3,4]
// var arr3 = arr1.concat(arr2)
// console.log(arr3)
(未完成)