美文网首页
Javascript 多维数组展开

Javascript 多维数组展开

作者: 我叫陈小宝T_T | 来源:发表于2017-09-14 19:10 被阅读0次

当数组只有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<arr.length;i++) {
        result = result.concat(arr[i]);
    }
}

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

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

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

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

相关文章

网友评论

      本文标题:Javascript 多维数组展开

      本文链接:https://www.haomeiwen.com/subject/gwzdsxtx.html