Javascript 在Java脚本中使用for循环更新JSON对象值

Javascript 在Java脚本中使用for循环更新JSON对象值,javascript,dom,Javascript,Dom,我有一个包含JSON数据的11个对象的数组。我编写了一个函数,其中向每个对象添加了一个新的具有零值的键。现在我想更新所有11个对象中所述键的值。数据存储在一个有11个数字的数组2中。我的for循环似乎对此不起作用,唯一的方法(到目前为止)是硬编码。有没有人建议如何做到这一点 预期的结果是: 数组[0]。新的_键=array2[0]; 数组[1]。新的_键=array2[1] 在使用j进行for循环之前,函数的第一个技巧是将新的键添加到原始数组中,这部分工作正常 for (i = 0; i

我有一个包含JSON数据的11个对象的数组。我编写了一个函数,其中向每个对象添加了一个新的具有零值的键。现在我想更新所有11个对象中所述键的值。数据存储在一个有11个数字的数组2中。我的for循环似乎对此不起作用,唯一的方法(到目前为止)是硬编码。有没有人建议如何做到这一点

预期的结果是:

数组[0]。新的_键=array2[0]; 数组[1]。新的_键=array2[1]

在使用j进行for循环之前,函数的第一个技巧是将新的键添加到原始数组中,这部分工作正常

    for (i = 0; i < array.length; i++) {
        array.map(i => i.new_key = 0);
        console.log(array)
        for (j = 0; j < array2.length; j++) {
            array[i].new_key = array2[j];
            console.log(array)
        }
    }
}```

for(i=0;ii.new_key=0);
console.log(数组)
对于(j=0;j
.map()
不会修改原始数组:

map()方法使用调用 在调用数组中的每个元素上提供函数

您将希望通过将映射分配给一个变量来获得映射的结果,并查看那里发生了什么。现在你对它什么都不做,所以它就会消失


虽然上述对于贴图是正确的,但在本例中,当我们访问对象的属性并在那里修改它们时,原始数组正在被修改。

我将其分为两个函数,我意识到我把它弄得太复杂了,没有意义。我编写了第二个只更新所有键值的函数,因此实际上,我删除了内部循环,因为它不需要。谢谢你的帮助

array[i].new_key=array2[j]我知道我做了什么,谢谢你的更正。它仍然不更新值,它仍然为零。我将在OP中更新代码。不清楚为什么所有这些都在这些循环中。对于
array
中的每个项目,您都在
array2
上循环,并且在外部循环中循环
array
一次,在
map()中循环一次。如果你能举例说明你开始使用的数据以及你想要得到的结果,那会很有帮助。@MarkMeyer-Well。。我认为我需要在第二个数组上循环,以便分配其中的每个值,因为外部循环使用JSON在数组上循环。我想要:数组[0]。新建_key=array2[0];数组[1]。新的_键=array2[1];等等。如果我像那样硬编码,它会工作,但我想我可以把它全部放在一个函数中。抱歉,如果我不清楚,我是一个初学者,正在为这些复杂的概念而挣扎。@Nelfo听起来你只想要一个用于循环、无
map
array.new_key[I]=array2[I]在循环中。但如果没有具体的数据,很难判断。我会看一看。我是一个初学者,对DOM非常不适应,我没有想过使用.map()。我现在要读点书。很抱歉,我不知道是谁否决了所有这些。您当前正在函数的第二行使用map。这里的问题不是map()。当OP执行
array.map时(i=>i.new\u key=0)
他们通过向每个项添加
新的\u键
属性来修改原始数组。这不是一个很好的方法,但它会修改原始数组。是的。我误解了你的建议,然后我又读了一遍,然后我明白我是个白痴_啊,@MarkMeyer实际上是正确的,因为您正在访问实际对象的属性。一般来说,您希望在地图中返回新项目,因此我同意,可能不是执行此操作的最佳位置。谢谢你的更正。