//迭代的实现:
let arr = [1, 2, [3, 4, 5, [6, 7], 8], 9, 10, [11, [12, 13]]]
const flatten = function (arr) {
while (arr.some(item => Array.isArray(item))) {
arr = [].concat(...arr)
}
return arr
}
console.log(flatten(arr))
//递归的实现(ES6简写):
const flatten = array => array.reduce((acc, cur) =>
(Array.isArray(cur) ? [...acc, ...flatten(cur)] : [...acc, cur]), []
)
//JavaScript写法
flatten(origin) {
var result = []
for(var i = 0
var item = origin[i]
if(item.data&&item.data.length) {
result.push(item)
item.data ? result = result.concat( flatten(item.data) ) : ''
} else {
result.push(item)
}
}
return result
}