var arr = [1,2,[1,3,5,[8]]]
// es6提供的Array.prototype.flat处理
arr = arr.flat(Infinity)
arr = arr.toString().split(',').map(item => Number(item))
arr = JSON.stringify(arr).replace(/(\[|\])/g,'').split(',').map(item => Number(item))
while(arr.some(item => Array.isArray(item))) {
arr = [].concat(...arr)
}
function myFlat() {
let result = []
let _this = this
let fn = (arr) => {
for(let i = 0; i<arr.length; i++) {
let item = arr[i]
if(Array.isArray(item)) {
fn(item)
continue
}
result.push(item)
}
}
fn(_this)
return result
}
Array.prototype.myFlat = myFlat