2013-10-03 113 views
1

这非常奇怪,但我无法访问属性,该属性是给定JavaScript对象上的对象数组。我已经在Chrome的控制台上输出了对象本身以及访问属性的尝试,结果导致我更加困惑。 下面是我对Chrome的控制台上收到关于存在的对象上var命名为quest什么:如何访问JavaScript对象上的数组属性

[Object] 
0: Object 
    FuncaoValNum: "" 
    IDQuestaoMultiplaEscolha: 0 
    Opcoes: Array[2] 
     0: Object 
      IDOpcaoQuestaoMultiplaEscolha: 0 
      IDQuestaoMultiplaEscolha: "0" 
      Ordem: 0 
      Texto: "Op1" 
      (...) 
      __proto__: Object 
     1: Object 
      IDOpcaoQuestaoMultiplaEscolha: 0 
      IDQuestaoMultiplaEscolha: "0" 
      Ordem: 1 
      Texto: "Op2" 
      (...) 
      __proto__: Object 
     length: 2 
     __proto__: Array[0] 
    (...) 
    __proto__: Object 
    length: 1 
__proto__: Array[0] 

,并在下一行输出上述信息的,我只是试图通过访问对象的Opcoes数组的长度quest.Opcoes.length。其结果是:

undefined 

真的很困惑,因为它似乎quest是上面有2个其他对象,但一个名为Opcoes数组属性的对象,我只是不能访问它的.lengthquest.Opcoes.length或任何其他我能想到的方式。

我在做什么错?

回答

3

最外层的结构也是一个数组,因此您需要访问该数组的第一个索引才能访问该对象。

quest[0].Opcoes.length 

当你这样做:

quest.Opcoes.length 

你实际上应该得到一个类型错误而不是undefined因为quest没有Opcoes财产,这意味着.length将在undefined访问属性。

+0

好了,不知道为什么它输出一个“不确定的”,但现在,我真的很高兴它的工作......我错过了它实际上是一个数组。非常感谢!只有外眼睛才能抓住的东西! :d –

1

只是

data[0].Opcoes

(属性你的对象的第一行的Opcoes