将多维数组的元素全部取出,组成一维数组的方法

现在有一个多维数组[1,[2,[3,[4,[5]]]]],我们需要让它变成[1,2,3,4,5]。

我总结了两种方法。

一:用toString或者join方法。用map方法将所有数组的字符串元素转成数值。

    var arr = [1, [2, [3, [4, [5]]]]];
    console.log(arr.join().split(',').map(function (list) {
        return parseFloat(list)
    }));
    //[1,2,3,4,5];

或者

    var arr = [1, [2, [3, [4, [5]]]]];
    console.log(arr.toString().split(',').map(function (list) {
        return parseFloat(list)
    }));

二:使用递归的方法

    var arr = [1, [2, [3, [4, [5]]]]];
    var temp = [];
    function takeAll(arr) {
        if (arr.length >= 1) {
            if (typeof(arr[0]) == 'number') {
                temp.push(arr.shift());
                takeAll(arr);
            } else {
                takeAll(arr[0]);
            }
        } else {
            return;
        }
    }
    takeAll(arr);
    console.log(temp);
    //[1,2,3,4,5];

 

posted @ 2017-05-31 23:34  从过去穿越到现在  阅读(838)  评论(0编辑  收藏  举报