gpt4 book ai didi

Javascript JSON 未知行为

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

我正在尝试设置 JSON 对象属性的值,但是当我运行 Object.property = value 时,整个 JSON 对象将替换为字符串 229, .

在以下代码块中:

for(var i=0; i<config["profiles"].length; i++){
profile = config["profiles"][i];
out = {
"name":profile["name"],
"version":profile["version"].replace(/_/g, "."),
"mods":null,
"saves":null
}
console.log(out)
out.mods = getMods(profile);
console.log(out)
console.log(getSaves(profile))
out.saves = getSaves(profile);
console.log(out)
profiles.push(out);
}
return profiles;

前 2 个 console.log(out) 调用按预期返回正确的 JSON 对象。

console.log(getSaves(profile)) 打印以下内容:

[ { name: 'Hard Career ',
mode: 'CAREER',
funds: '275,520',
science: '229',
reputation: '721',
flights: '20' },
{ name: 'Sandbox ',
mode: 'SANDBOX',
funds: 0,
science: 0,
reputation: 0,
flights: '12' } ]

但是,out.saves = getSaves(profile) 之后直接打印的内容如下:229,

让事情变得更加复杂的是,这只发生在 config["profiles"] 数组中的一项上。

如果有人有可能解决该问题的方案,我很想听听。如果您需要有关代码的更多信息,我会看看我能做什么。

提前致谢!

最佳答案

您应该使用类似 let profile = 的方式声明变量

如果您不这样做,profileout 将是全局变量,这意味着每次通过 for 循环时,您都会重新分配单个共享全局变量。如果您有其他代码也在执行此操作,则很难跟踪。将代码更改为:

let profile = config["profiles"][i];
let out = {
"name":profile["name"],
"version":profile["version"].replace(/_/g, "."),
"mods":null,
"saves":null
}

应该有帮助。

关于Javascript JSON 未知行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52341080/

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