我正在尝试从现有 JSON 文件重建数据结构。 为了举例,我删除了所有不必要的代码:
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));
还有一个 fiddle 可以更好地显示它:http://jsfiddle.net/84w6F 此示例的目的是通过将键和值都称为变量来尝试将“条目”中的数据重建为完全相同。 由于某种原因,我最终陷入了困惑,最后当我尝试在循环后读取数组时,它只显示了最后一个子数组。
最佳答案
这里有一个包含 2 个条目的一维数组,而不是一个多维数组。
您的外部循环正在遍历数组中的两个对象,内部循环正在遍历每个对象中的所有键值对,但它仅设置rows["a"]
和 rows["a1"]
因为数组中的每个对象只有 2 个属性。
我不完全确定你想对数组中的数据做什么,如果你想完全复制它们,那么你可以这样做:
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);
}
关于javascript - 在 JavaScript 中将数据构建到多维数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24998498/