0

我有一个如下所示的数组

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 一样。我很震惊,因为我不知道如何进行

4

1 回答 1

1

像这样?:

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/

于 2013-08-21T07:27:48.000 回答