数组数组 jquery, json 到数组

array of arrays jquery, json to array

我的JSON:

[{"one":"a","two":"1","three":"2","four":"3"},
 {"one":"b","two":"4","three":"5","four":"6"},
 {"one":"c","two":"7","three":"8","four":"9"}]

我需要的数组:

[[[1,"a"], [4,"b"], [7,"c"]],
 [[2,"a"], [5,"b"], [8,"c"]],
 [[3,"a"], [6,"b"], [9,"c"]]]

如何处理 JSON 以将其转换为数组数组?

我需要动态执行,因为JSON 可能更大(更多行 a、b、c、...z)。 4列是固定的(一,二,三,四),不会改变。

我已经尝试了几种方法...用 .push 来做,创建一个 array=[[]],尝试 array=new array(3) 然后在每个位置制作 array[0]=new array [],但是我还没解决,我已经试了一整天了,一整天!

我认为解决方案是像这里一样使用推送 related subject 但是我不是很理解这个解决方案。

非常感谢您的帮助。

在您的 json 中,它的数组位于数组中,因此第一个数组是单个项目,第二个数组是 3 个项目。所以你需要编写内部 for 循环来获取第二个数组 2 项,如下所示。

for(var i=0; i<info.length; i++)
{
    for(var j=0; j<info[i].length; j++)
    {
        Ti.API.info("Title : " + sample[i][j].one);
        Ti.API.info("Desc : " + sample[i][j].a);
    }
}

您可以映射行和列,如下所示:

http://jsfiddle.net/Castrolol/0x8u352r/1/

var sampleData = [{"one":"a","two":"1","three":"2","four":"3"},
 {"one":"b","two":"4","three":"5","four":"6"},
 {"one":"c","two":"7","three":"8","four":"9"}];


function transform(data){

    var prepared = data.map(function(row){
        var keys = Object.keys(row);
        var values = keys.map(function(key){
            return row[key];
        });
        var columnOne = values[0];
        var otherColumns = values.slice(1);

        return {
            letter: columnOne,
            numbers: otherColumns
        };

    });    

    var rows = [];

    prepared.forEach(function(row){

        row.numbers.forEach(function(number, i){

            if( i >= rows.length ){
                rows.push([]);
            }

            rows[i].push([+number, row.letter]);

        });

    });    

    return rows;

}


var result =  transform(sampleData) ;
console.log(JSON.stringify(result, null, 4));