【问题标题】:Building data into a multidimensional array in JavaScript在 JavaScript 中将数据构建到多维数组中
【发布时间】:2014-07-28 15:18:43
【问题描述】:

我正在尝试从现有 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));

还有一个小提琴可以更好地展示它:http://jsfiddle.net/84w6F 此示例的目的是通过将键和值都调用为变量,尝试将“条目”中的数据重建为完全相同。 出于某种原因,我最终弄得一团糟,最后当我尝试在循环后读取数组时,它只显示最后一个子数组。

【问题讨论】:

  • 你的 rows[t] 有什么意义?您是否尝试制作类似于“t”、“t1”、“t11”、“t111”的键?
  • data in "entries" to be exactly the same 你的意思是要将json中的内容输出到#agenda吗?
  • 您能否说出您希望在#agende 中得到的确切结果?
  • @Matt Wolfe 这只是为了举例。
  • @JFK 是的,但正如我所说,这只是为了显示结果。重点是过程。

标签: javascript jquery arrays multidimensional-array dynamic-arrays


【解决方案1】:

这里有一个包含 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);
}

【讨论】:

  • 我不完全确定它是如何发生的,但是使用您的建议并删除 [key] 得到了我想要的结果。这是一个显示它的小提琴:jsfiddle.net/84w6F/1
【解决方案2】:

它按预期工作。由于有 2 个条目,因此您将在循环内两次追加行:

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

}

您实际上在做的是重复替换 rows['a']rows['a1'](而不是增长它)并将其附加两次,以便您看到第一个结果。

【讨论】:

    猜你喜欢
    • 2021-06-12
    • 1970-01-01
    • 2012-01-28
    • 1970-01-01
    • 2014-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多