javascript - 在 JavaScript 中将数据构建到多维数组中

标签 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 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/

相关文章:

javascript - 如何使用java脚本或jquery根据AM和PM在特定时间启动和停止发光每个按钮

Jquery Masonry 不适应不同的高度

c++ - 无法理解 new 或 malloc 如何与 BYTE* 一起工作

javascript - 使用可选参数运行LIKE查询-SQLite3

javascript - 如何在单击时循环遍历一组背景图像

javascript - 显示隐藏数据表后标题列与值不对齐

javascript - 将值从 View 传递到动态填充表单的 Controller

c# - 修剪文本文件中的每一行,然后将结果保存到数组中

C++ const 数组追加

php - prettyPhoto jquery 插件不工作