道招

javascript数组降维

如果您发现本文排版有问题,可以先点击下面的链接切换至老版进行查看!!!

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]
其实逼格更高的写法是用reduce
function dist(arr){
    if(Array.isArray(arr)){
        return arr.reduce(function(prev, curr){
            return prev.concat(dist(curr));
        },[]);
    }else{
        return arr;
    }
}
更新时间:
上一篇:下一篇:

相关文章

关注道招网公众帐号
友情链接
消息推送
道招网关注互联网,分享IT资讯,前沿科技、编程技术,是否允许文章更新后推送通知消息。
允许
不用了