Я пытаюсь установить значение свойства объекта 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.info(out)
out.mods = getMods(profile);
console.info(out)
console.info(getSaves(profile))
out.saves = getSaves(profile);
console.info(out)
profiles.push(out);
}
return profiles;
Первые 2 вызова console.info(out), как и ожидалось, возвращают правильный объект JSON.
console.info(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 out = .
@MarkMeyer это наверное проблема
Вы даете ссылку на обработанный profile на функции getMods и getSaves, но не предоставляете их код. Боюсь, что в сети нет никого из тех, кто занимается стеклянными шарами.
@MarkMeyer Спасибо, что исправили. Если вы установите это как ответ, я с радостью приму его.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы должны объявить свои переменные с помощью чего-то вроде let profile =
Если вы этого не сделаете, profile и out будут глобальными переменными, что означает, что каждый раз в вашем цикле for вы переназначаете одну общую глобальную переменную. Если у вас есть другой код, который также делает это, будет очень сложно отслеживать. Измените свой код на:
let profile = config["profiles"][i];
let out = {
"name":profile["name"],
"version":profile["version"].replace(/_/g, "."),
"mods":null,
"saves":null
}
должно помочь.
console.info- это просмотр объектов в реальном времени. Попробуйте использоватьconsole.info(JSON.stringify(out)), чтобы увидеть реальные снимки