【问题标题】:console.log/console.dir showing last state of object, not currentconsole.log/console.dir 显示对象的最后状态,而不是当前状态
【发布时间】:2014-05-28 19:29:33
【问题描述】:

我想记录我的数组/对象如何随着循环的新步骤而变化。 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/

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

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

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

【问题讨论】:

    标签: javascript logging console.log


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-11-15
      • 2012-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多