Sha*_*lav 6 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}
Run Code Online (Sandbox Code Playgroud)
我在那里找到了另一个命令:console.dir. 它在同一个例子中正常工作。它正确地显示了对象的状态。
看看这个例子。此命令完美运行:http : //jsfiddle.net/RLzVV/
现在,请看我的代码。所有输出都在控制台中。http://jsfiddle.net/3BDs7/4/
这是aStar算法。<--- neighbor 3 start ---> this code is situated here <--- neighbor 3 stop -->在控制台中查看这部分(邻居 3 循环)。将其输出到控制台的车道是105-113:
new openset length: 2
openset after adding new vertex
**shows 1 element, but length is 2**
Run Code Online (Sandbox Code Playgroud)
它显示长度为 2,但仅显示 1 个元素。但!在我看来,算法工作正常(它正在弹出另一个元素,该元素在此步骤之后隐藏)。为什么会出现这个bug?我做错了什么吗?在我看来,到处都只显示数组的最后状态,而不是当前状态:(请帮帮我。
这是一个已知问题 - 听起来您在 Chrome 下运行。
最简单的解决方法是在您登录时对值进行 JSON 编码。
console.log(JSON.stringify(a));
Run Code Online (Sandbox Code Playgroud)