将JSON数据推入所有JSON数组(Javascript)

时间:2018-06-05 23:26:52

标签: javascript json arraylist

假设我有这个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"}]

感谢。

1 个答案:

答案 0 :(得分:0)

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-each循环来实现相同的效果,而不是使用常规for循环。

我希望这会有所帮助。