javascript - console.log/console.dir 显示对象的最后状态,而不是当前状态

标签 javascript logging console.log

我想记录我的数组/对象如何随着循环的新步骤而变化。 Console.log这不好吗。它到处只显示对象的最后状态。例如:

var a = {};
console.log(a); // {bob1: 0, bob2: 0}
a.bob1 = 0;
console.log(a); // {bob1: 0, bob2: 0}
a.bob2 = 0;
console.log(a); // {bob1: 0, bob2: 0}

我在那里找到了另一个命令:console.dir .它在同一示例中正常工作。它正确地显示了对象的状态。

看这个例子。此命令完美运行:http://jsfiddle.net/RLzVV/

现在,请看我的代码。所有输出都在控制台中。 http://jsfiddle.net/3BDs7/4/

这是星型算法。在控制台中查看此部分(邻居 3 循环 <--- neighbor 3 start ---> this code is situated here <--- neighbor 3 stop -->)。将其输出到控制台的 channel 是 105-113 :

new openset length: 2
openset after adding new vertex
**shows 1 element, but length is 2**

显示长度为2,但只显示1个元素。但!在我看来,算法工作正常(它正在弹出另一个元素,该元素在此步骤之后隐藏)。为什么会出现这个bug?我做错了什么吗?在我看来,到处都只显示数组的最后状态,而不是当前状态:(请帮助我。

最佳答案

这是一个已知问题 -- 听起来您是在 Chrome 下运行。

最简单的解决方法是在您登录时对值进行 JSON 编码。

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

关于javascript - console.log/console.dir 显示对象的最后状态,而不是当前状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23066856/

相关文章:

javascript - 是否有 'correct' 方法在控制台中标记测试值?

javascript - 如何在 JQuery 中使用 ajax() 函数?

javascript - Dojo lint - Dojo 有没有好的 lint 工具,而不仅仅是 javascript

iphone - 如何捕获 iphone 中的所有异常?

c++ - 自定义 "ofstream"输出

node.js - 如何用console.log完整输出Buffer内容

javascript - 合并 2 个 javascript/jquery 随机横幅图像/文本函数相互对应?

javascript - 其余Api返回数据但未显示在页面上

c# - Serilog 是否支持 .NET Framework 4.8

Angular 控制台日志仅来自 main.js :1 and polyfills. js:1