gpt4 book ai didi

javascript - 使用 javascript 数组填充 JSON 并修改条目

转载 作者:行者123 更新时间:2023-11-29 21:43:15 25 4
gpt4 key购买 nike

使用此代码修改 JSON 数组(嵌套到另一个数组中)似乎不可行:

   var names = [{'name': 'ourname'},{'name': 'yourname'}] ;

var array = [{
"year": "2015",
names
},{
"year": "2016",
names
}];

我不能通过这样做修改“数组”中的单个名称条目

array[0].names[1].name="MY NAME"

因为它实际上修改了“0”行中的所有名称条目:

输出:

0:0 ourname
0:1 MY NAME
1:0 ourname
1:1 MY NAME

笨蛋 here

我正在寻找一种干净的方法来在名称数组中实现正确的单一修改,因为我想避免循环来执行此操作。

谢谢你的帮助

最佳答案

因为它们指向同一个数组,而且,简单地通过 .slice 克隆 names 是不够的,因为数组包含 objects 不是原始类型,因此您需要从原始 names 深度克隆并分配给每个对象。所以你需要将代码更改为:

var array = [{
"year": "2015",
names: JSON.parse(JSON.stringify(names))
}, {
"year": "2016",
names: JSON.parse(JSON.stringify(names))
}];

查看编辑后的 ​​pluker .

我在这里使用 JSON.parse(JSON.stringify(names)) 从原始数组简单地创建深度克隆,还有其他方法。

关于javascript - 使用 javascript 数组填充 JSON 并修改条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31994437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com