密钥中的Javascript对象冒号

时间:2014-08-04 09:11:49

标签: javascript google-chrome sigma.js

执行后附上Javascript控制台(Chrome版本36.0.1985.125 m)的屏幕截图:

console.log(node)
console.log(node['read_cam0:x'])
console.log(node['label'])

enter image description here

为什么node["read_cam0:x"]未定义?

在sigma.js添加了问题:https://github.com/jacomyal/sigma.js/issues/361

更新:Firefox控制台显示: enter image description here

查看左侧对象中缺少的read_cam0,但右侧显示(点击左侧的对象后)。

4 个答案:

答案 0 :(得分:3)

表达式obj["read_cam0:x"]正如您所期望的那样工作,而不是undefined

console.log()的返回值始终为undefined(因此屏幕截图中的第二行)。但是,调用该函数会产生副作用,它会将内容记录到控制台(屏幕截图中的第一行)。

在Chrome开发控制台中输入console.log(而不是在javascript文件中执行)因此总会产生两行:

答案 1 :(得分:1)

显然,chrome控制台会在其中显示对象的更新状态,而其下方的一行会在更新对象之前记录状态。使用setTimeout确定了问题。

答案 2 :(得分:-1)

这只是意味着您尝试打印到控制台的对象未定义。如果存在,则输出为[Object object]

答案 3 :(得分:-3)

read_com0是一个对象

试试这个:

console.log(node)
console.log(node["read_cam0"]["x"])