javascript数组降维

网上有不少提供数组降维的方法,但是一般是二维数组,并且对多维数组的处理不好。降维自然会想到用concat方法,如果只是全部循环用push的话,那样写起来更麻烦,必要时该用concat的就用concat。

function dist(arr) {
        var res = [];
        for (var i = 0; i < arr.length; i++) {
            if (Object.prototype.toString.call(arr[i]) === '[object Array]') {
                res = res.concat(dist(arr[i]));
            } else {
                res.push(arr[i]);
            }
        }
        return res;
    }
var re = dist([1, 2, [3, 4, [5, 6, [7, 8]]]]);
    console.log('re', re); //输出[1,2,3,4,5,6,7,8]

发表评论

电子邮件地址不会被公开。 必填项已用*标注