数组扁平化的几种方式

87 阅读1分钟

数组扁平化就是将嵌套多层的数组变为一层数组。 以下介绍3种方式: 1.

    var arr = [1, [2, [3]]]
    function flatten(arr) {
        var res = []; 
        for (var i = 0, len = arr.length; i < len; i++) {
            if (Array.isArray(arr[i])) {
                res =res.concat(flatten(arr[i]))
            } else {
                res.push(arr[i])
            }
        }
        return res;
    }

var res = flatten(arr) console.log(res);

2.此方法有局限性

        function flatten(arr){
        var result = []
        result = arr.toString().split(',').map(function(item){
            return +item;
        })
        return result;
    }

3. function flatten(arr) { return arr.reduce(function (pre, item) { // return pre.concat(item) return pre.concat(Array.isArray(item) ? flatten(item) : item) }, []) } var res = flatten([1, 2,3, [1, 2]]) console.log(res);