Console.log (values) возвращает «[object Object]» вместо записи массива.
Это мой код:
let values = {
"coins": 0,
"griffinFeathers": 0,
"souvenir": 0,
"cogs": 0,
"cats": 0,
"golems": 0,
"champions": 0,
"minotaurs": 0,
"inquisitors": 0
}
JSON.stringify(FileLib.write("MinotaurLoot", "values.json", values));
function thing() {
fileThing = JSON.stringify(FileLib.read("MinotaurLoot", "values.json"));
if (griffin_thing_idk) fileThing.griffin++;
}
console.log(values) // [object Object]
1 ответ
Смотря на:
JSON.stringify(FileLib.write("MinotaurLoot", "values.json", values));
JSON.stringify()
должен либо быть удален, поскольку вы нигде не сохраняете возвращенную строковую версию своего объекта либо выполните что-то вроде:
const stringifiedValues =
JSON.stringify(FileLib.write("MinotaurLoot", "values.json", values));
//Now you should be able to console.log without getting [object Object]
console.log(stringifiedValues);
Причина, по которой вы получаете [object Object]
, заключается в том, что реализация console.log()
в JavaScript по умолчанию не обеспечивает корректной обработки объектов JavaScript, поскольку они являются «более сложной» структурой данных, чем такие примитивы, как String или Число.
Как указано @coderpc в комментарии к вашему вопросу, вы можете получить доступ к внутреннему содержимому объекта с помощью метода JSON.stringify()
перед его заключением в оператор console.log
.
Сообщите нам, если это сработает.
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Имейте в виду, что JavaScript — это НЕ то же самое, что Java! Включите все ярлыки, относящиеся к вашему вопросу; например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [svelte] и т. д.