【问题标题】:array of arrays jquery, json to array数组数组 jquery,json 到数组
【发布时间】:2015-06-06 17:05:24
【问题描述】:

我拥有的 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 来实现,创建一个数组 =[[]],尝试数组 = 新数组(3),然后在每个位置创建数组 [0] = 新数组 [] ,但我还没解决,我已经通过了一整天的尝试,一整天!

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

感谢您的帮助。

【问题讨论】:

  • 你有嵌套数组,所以基本上你需要嵌套循环。
  • 或者你可以试试map函数。

标签: javascript jquery arrays json push


【解决方案1】:

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

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));

【讨论】:

  • 太棒了!!真诚地,我已经度过了这个问题一整天。现在它完美无缺!!感谢您的帮助
【解决方案2】:

在您的 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);
    }
}

【讨论】:

  • 感谢您的回复,但我没有在数组内部移动的问题(我可以使用 $.each(resultado, function( key, value ) 来完成)我遇到的问题是 - -> 如何构建新数组
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-03
  • 2015-10-26
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
相关资源
最近更新 更多