- 递归
var result = [];
function unfold(arr){
for(var i = 0,len = arr.length;i<len;i++){
if(Array.isArray(arr[i])){
if(arr[i].length==1){
result.push(arr[i][0]);
} else {
unfold(arr[i]);
}
}else{
result.push(arr[i]);
}
}
}
var arr = [1,3,4,5,[6,[0,1,5],9],[2,5,[1,5]],[5]];
unfold(arr);
- toString
var arr = [1,3,4,5,[6,[0,1,5],9],[2,5,[1,5]],[5]];
var result = arr.toString().split(',');
- 使用es6的reduce函数
var arr = [1,3,4,5,[6,[0,1,5],9],[2,5,[1,5]],[5]];
let flatten = arr => arr.reduce(
(a,b) => a.concat(Array.isArray(b)?flatten(b):b),[]
);