Javascript 数组数组jquery,json到数组
我所拥有的JSON:Javascript 数组数组jquery,json到数组,javascript,jquery,arrays,json,push,Javascript,Jquery,Arrays,Json,Push,我所拥有的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"]]]
[{"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行更多)。这四列是固定的(一、二、三、四),不会改变
我尝试了几种方法…使用.push,创建数组=[[],尝试数组=新数组(3),然后在每个位置创建数组[0]=新数组[],但我还没有解决,我已经花了一整天的时间尝试这个,一整天
我认为解决方案是在这里使用push-like
但我不太理解这个解决方案
非常感谢您的帮助。在您的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);
}
}
for(var i=0;i您可以映射行和列,如下所示:
你有嵌套的数组,所以基本上你需要嵌套的循环。或者你可以尝试map
函数。谢谢你的回答,但是我没有在数组中移动的问题(我可以用$.each(resultado,function(key,value))来完成)我遇到的问题是-->如何构建新的阵列!!我真的用了一整天的时间来解决这个问题。现在它工作得很好!!我感谢你的帮助
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));