在JavaScript中将数据构建到多维数组中
我正在尝试从现有的JSON文件重建数据结构。 为了举例,我删除了所有不必要的代码:在JavaScript中将数据构建到多维数组中,javascript,jquery,arrays,multidimensional-array,dynamic-arrays,Javascript,Jquery,Arrays,Multidimensional Array,Dynamic Arrays,我正在尝试从现有的JSON文件重建数据结构。 为了举例,我删除了所有不必要的代码: var entries = [ { "band": "Weezer", "song": "El Scorcho" }, { "band": "Chevelle", "song": "Family System" } ] var rows = {}; for (var i = 0; i < entries.length; ++i) { var en
var entries = [
{
"band": "Weezer",
"song": "El Scorcho"
},
{
"band": "Chevelle",
"song": "Family System"
}
]
var rows = {};
for (var i = 0; i < entries.length; ++i) {
var entry = entries[i];
var t = "a";
for (var key in entry) {
rows[t] = t;
t = t+"1";
}
$("#agenda").append(JSON.stringify(rows));
}
$("#agenda").append("<br /><br /> In the end, it only shows the last one:<br />");
$("#agenda").append(JSON.stringify(rows));
var条目=[
{
“乐队”:“威瑟”,
“歌”:“埃尔·斯科乔”
},
{
“乐队”:“切维尔”,
“歌”:“家庭制度”
}
]
var行={};
对于(变量i=0;i
最后只显示最后一个:
);
$(“#议程”).append(JSON.stringify(rows));
还有一把小提琴能更好地显示它:
本例的目的是通过调用键和值作为变量,尝试将“entries”中的数据重建为完全相同的数据。
由于某些原因,我最终陷入了混乱,最后当我尝试在循环后读取数组时,它只显示最后一个子数组。这里有一个包含2个条目的一维数组,而不是多维数组 外部循环在数组中的两个对象上进行迭代,内部循环在每个对象中遍历所有键值对,但它只设置
行[“a”]
和行[“a1”]
,因为数组中的每个对象只有两个属性
我不完全确定要对数组中的数据执行什么操作,如果要完全复制数据,可以执行以下操作:
var rows = [];
for (var i = 0; i < entries.length; ++i) {
var entry = entries[i];
var newObj = {};
for (var key in entry) {
newObj[key] = entry;
}
rows.push(newObj);
}
var行=[];
对于(变量i=0;i
它正在按预期工作。因为有两个条目,所以在循环中要追加两行:
for (var i = 0; i < entries.length; ++i) {
var entry = entries[i];
var t = "a";
for (var key in entry) {
rows[t] = t;
t = t+"1";
}
$("#agenda").append(JSON.stringify(rows));
}
for(变量i=0;i
实际上,您所做的是重复地替换
行['a']
和行['a1']
(而不是增加它),并添加两次,以便看到第一个结果。行[t]的意义是什么?你是想制作一个类似于“t”、“t1”、“t11”、“t111”的键吗?“条目”中的数据完全相同
你的意思是想将json中的内容输出到#议程中
?你能告诉我你最终在#agende中期望得到什么样的确切结果吗?@Matt Wolfe这只是一个例子。@JFK是的,但正如我所说的,这只是为了显示结果。重点是过程。我不完全确定它是如何发生的,但使用您的建议并删除[key]
正是我想要的结果。这是一把小提琴,它显示了这一点: