【问题标题】:Push JSON Data into All Array of JSON (Javascript)将 JSON 数据推送到所有 JSON 数组中(Javascript)
【发布时间】:2018-06-05 23:26:52
【问题描述】:

假设我有这个 JSON。

[{ "a" : "1" , "b" : "2"},{ "a" : "2" , "b" : "2"}, { "a" : "3" , "b" : "3"}]

我想要这个

[{ "a" : "1" , "b" : "1" , "c" : "asd"},{ "a" : "2" , "b" : "2", "c" : "asd"}, { "a" : "3" , "b" : "3" , "c" : "asd"}]

如何通过javascript在每个数组上添加“c”? 我尝试使用 arr.push({ "c" : "asd"}) 但结果是

[{ "a" : "1" , "b" : "2"},{ "a" : "2" , "b" : "2"}, { "a" : "3" , "b" : "3"},{"c" : "asd"}]

谢谢。

【问题讨论】:

  • 这就是你尝试的全部吗?我建议检查循环和迭代。
  • 听起来像你想要的Array.map
  • Array.map 对于向对象数组添加属性是多余的 - forEach 完全可以

标签: javascript json arraylist


【解决方案1】:

arr.push 只是附加到数组的末尾。您要做的是为数组中的每个元素添加一个新映射。

因此,您需要遍历数组并添加映射。

let objarr = [{ "a" : "1" , "b" : "2"},{ "a" : "2" , "b" : "2"}, { "a" : "3" , "b" : "3"}];

for (var i = 0; i < objarr.length; i += 1) {
    objarr[i]["c"] = "asd";
}

在上面的示例中,我们遍历数组中的每个对象,将c 映射到asd。请注意,如果存在现有的c 映射,它将被asd 覆盖。

除了使用常规的 for 循环,您还可以使用 for-each 循环来达到相同的效果。

我希望这会有所帮助。

【讨论】:

  • 或更简单的objarr.forEach(o =&gt; o.c = 'asd');
  • 我宁愿使用map() 而不是forEach(),因为它使代码保持不变并且(根据我的观点)更简洁。
  • @JaromandaX 谢谢。我认为您的代码更简单,我正在使用它。
猜你喜欢
  • 1970-01-01
  • 2015-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-13
相关资源
最近更新 更多