扁平化多维数组

149 阅读1分钟
  1. 递归

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);
  1. toString
var arr =  [1,3,4,5,[6,[0,1,5],9],[2,5,[1,5]],[5]];
var result = arr.toString().split(',');
  1. 使用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),[]
);