【发布时间】:2014-02-26 19:08:35
【问题描述】:
这是我的代码:
var data = $.parseJSON('[{"Date":"2014-02-19","Count":"963"},{"Date":"2014-02-20","Count":"2638"}]');
console.log(data);
console.log(typeof data[0].Count);
data.forEach(function(d) {
d.Count = +d.Count;
});
console.log(typeof data[0].Count);
第一个控制台日志将我的计数视为每个对象内的数字。
第二个控制台日志是字符串。
最后的 console.log 是数字。
有人可以向我解释为什么第一个控制台日志将每个 Count 视为一个数字,当我在使用 d.Count = +d.Count 代码行将 Count 操作为数字之前记录数据对象时?
这是其中的代码:http://jsfiddle.net/b73fZ/
【问题讨论】:
-
谷歌浏览器魔法。尝试先记录它,添加延迟,然后在延迟结束之前在控制台中扩展对象。魔法消失了。 jsfiddle.net/b73fZ 如果你在延迟结束前不展开对象,它会显示一个数字。我不知道它背后的细节,但在我看来,chrome 在需要显示之前不会查看对象的属性。
标签: javascript jquery json parsing typeof