Я работаю над приложением Connect Four для школьного проекта. В настоящее время я пытаюсь JSON.stringify объект, содержащий двумерный массив объектов «дыры» (каждый из которых содержит ключи: x, y, столбец, строку, p1 и p2), чтобы я мог отправить его на сервер, и пусть он транслирует его двум клиентам -> Это будет обновлять состояние игры для обоих клиентов.
Прямо перед тем, как я JSON.stringify(holeObjArray), я console.log зарегистрировал содержимое объекта, и они показывают обновленное состояние игры:
Я выделил (красным):holeObjArray[5][6] содержит ключ 'p1' = 1, и это соответствует текущему состоянию игры (справа).
Когда я JSON.stringify объект, видно здесь:
function sendGrid()
{
console.log(holeObjArray);
JSONStr = JSON.stringify(holeObjArray);
console.log(JSONStr);
//ws.send(JSONStr);
}
Вывод JSONStr показывает следующее:
Как видите, строковый объект не представляет текущее состояние игры. На самом деле, если я продолжу играть, строковый объект всегда будет представлять состояние доски при последней игре. Я не понимаю, почему JSON.stringify() делает это? Особенно потому, что HoleObjArray правильно представляет сетку до того, как я ее упорядочу, но как только я это сделаю, строка JSONStr представляет сетку в движении до той, которая была только что создана. Любая помощь в этом вопросе будет принята с благодарностью,
Спасибо,
Алекс
console.log
часто лжет. Вставьте операторdebugger;
сразу после console.log и посмотрите, отличается ли зарегистрированное значение от значения без него. - person Amadan   schedule 24.10.2017