Javascript 多维数组展开

当数组只有2层时

function flattenArr(arr) {
    var result = [];
    function flatten(arr) {
        for(var i = 0; i < arr.length; i++) {
            if(Array.isArray(arr[i])){
                flatten(arr[i]);
            }else{
                result.push(arr[i]);
            }
        }
    }
    flatten(arr);
    return result;
}

这里可以使用 concat

function flatten2d(arr) {
    var result = [];
    for(var i = 0;i

在优化一步 使用apply(context , [arguments])

function flatten2d(arr) {
    return Array.prototype.concat.apply([],arr);
}

当数组有多维时,使用递归

function flattenMd(arr) {
    var result = [];
    for(var i = 0; i

你可能感兴趣的:(Javascript 多维数组展开)