如何访问JavaScript对象上的数组属性

时间:2013-10-03 17:20:05

标签: javascript arrays javascript-objects

这很奇怪,但我无法访问属性,该属性是给定JavaScript对象上的对象数组。我已经在Chrome控制台上输出了对象本身以及访问该属性的尝试,结果导致我更加困惑。 以下是我在Chrome控制台上收到的有关名为var的{​​{1}}上的对象的信息:

quest

在输出上述信息的下一行中,我只是尝试使用[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个其他对象,然而,我只是无法访问它{{1}使用Opcoes或我能想到的任何其他方式。

我做错了什么?

2 个答案:

答案 0 :(得分:3)

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

quest[0].Opcoes.length

当你这样做时:

quest.Opcoes.length

你实际上应该得到一个 TypeError 而不是undefined,因为quest没有Opcoes属性,这意味着.length将访问一个属性undefined

答案 1 :(得分:1)

只是

data[0].Opcoes

(对象第一行的属性Opcoes