数组扁平化

作者: 小小_绿 | 来源:发表于2019-08-27 21:05 被阅读0次

    数组扁平化是指将一个多维数组变为一维数组

    1、使用toString 、split
    function flatten(arr) {
        return arr.toString().split(',').map(function(item) {
            return Number(item);
        })
    } 
    
    2、使用join 、split
    function flatten(arr) {
        return arr.join(',').split(',').map(function(item) {
            return parseInt(item);
        })
    }
    
    3、 reduce

    遍历数组每一项,若值为数组则递归遍历,否则concat。

    function flatten(arr) {  
        return arr.reduce((result, item)=> {
            return result.concat(Array.isArray(item) ? flatten(item) : item);
        }, []);
    }
    
    4、 递归
    function flatten(arr) {
        var res = [];
        arr.map(item => {
            if(Array.isArray(item)) {
                res = res.concat(flatten(item));
            } else {
                res.push(item);
            }
        });
        return res;
    }
    
    5、扩展运算符
    function flatten(arr) {
        while(arr.some(item=>Array.isArray(item))) {
            arr = [].concat(...arr);
        }
        return arr;
    }
    

    相关文章

      网友评论

        本文标题:数组扁平化

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