簡體   English   中英

將嵌套數組轉換為純數組

[英]Convert a nested array to plain Arrays

我有一個像下面的數組

var arr = [["a", "b"],[1],[5,6]];

我想將其轉換為如下所示的純JSON

arr = [
     ["a","a","b","b"]
     [1,1,1,1]
     [5,6,5,6]
]

邏輯是

在第一個數組元素的每個項目下,所有元素都是子元素,在下一個[1],[5,6]的每個數組項目下都是子元素

a->1->[5,6]
b->1->[5,6]

如果var arr = [["a", "b"],[1,2],[5,6]]; 然后

a->[1]->[5,6]
a->[2]->[5,6]

就像元素b一樣。 我不知所措,感到震驚

像這樣?:

var arr = [["a", "b"],[1],[5,6]];

var convert2PlainArray = function(array){
    var totalLength = 1,
        plainArray = [];
    for(var i=0;i<array.length; i++){
        totalLength*=array[i].length;
    }
    for(var i=0;i<array.length; i++){
        var currentElementLength = totalLength/array[i].length,
            tempArray = [];
        for(var e=0;e<array[i].length; e++){
            for(var l=0;l<currentElementLength; l++)tempArray.push(array[i][e]);
        }
        plainArray.push(tempArray);
    }
    return plainArray;
}

alert(JSON.stringify(convert2PlainArray(arr)));

在小提琴上對其進行測試: http : //jsfiddle.net/GMJzW/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM