Javascript在控制台上不应该定义数据

时间:2016-07-26 11:19:16

标签: javascript

我有这些数据:

{
   "id":"01",
   "new":0,
   "closed":0,
   "locked":0,
   "subhere":[
      {
         "id":"123",
         "subname":"somename"
      }

...等...

在控制台日志中,我要显示它(请参阅注释):

console.log('Level 1 ID: ' + obj.id); //This works!
console.log('Level 1 Closed ' + obj.closed); //This works!
console.log('Level 1 Locked ' + obj.locked); //This works!
console.log('Level 2 Subhere ID ' + obj.subhere.id); //This returns Undefined!

最后一个console.log给了我Undefined但是我没看到问题是什么......为什么?

关于为什么我在最后一个上获得未定义的任何想法?

3 个答案:

答案 0 :(得分:6)

subhere是一个数组 - 您将其称为对象。

因此它应该是:

console.log(obj.subhere[0].id); 

答案 1 :(得分:5)

由于obj.subhere是一个数组,因此obj.subhere.id将是undefined。你需要首先得到数组元素作为对象。

console.log('Level 2 Subhere ID ' + obj.subhere[0].id)
//---------------------------------------------^^^----

var obj = {
  "id": "01",
  "new": 0,
  "closed": 0,
  "locked": 0,
  "subhere": [{
    "id": "123",
    "subname": "somename"
  }]
};

console.log('Level 2 Subhere ID ' + obj.subhere[0].id)

答案 2 :(得分:0)

你应该使用这个

 console.log('Level 2 Subhere ID ' + obj.subhere[0].id);