gpt4 book ai didi

javascript - 如何更改 JSON 对象中对象的属性值

转载 作者:行者123 更新时间:2023-12-01 02:41:30 26 4
gpt4 key购买 nike

我有以下问题:

var a = {
'a': '',
'b': ''
},

b = [1,3],
o = {};

for (i = 0; i<b.length; i++) {
o['shop' + b[i]] = a;
o['shop' + b[i]].store = b[i];
}

console.log(JSON.stringify(o));

预期 shop[n] 将等于商店值(value),但这是错误的

{
"shop1" : {
"a" : "",
"b" : "",
"store":3
},
"shop3" : {
"a" : "",
"b" : "",
"store":3
}
}

这是怎么回事?

最佳答案

因为 a 引用了一个对象,并且在每次迭代中更改它时,您实际上更改了所有对象的值,因为您使用的是引用该单个对象的引用。您可以使用Object destructing复制 o 中每个属性的对象。

var a = {
'a': '',
'b': ''
};
var b = [1,3];
var o = {};

for (var i = 0; i < b.length; i++) {
o['shop' + b[i]] = {...a};
o['shop' + b[i]].store = b[i];
}

console.log(JSON.stringify(o));

关于javascript - 如何更改 JSON 对象中对象的属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47546713/

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