我有两个像这样定义的数组
var theory= new Array();
var first;
var second;
function arrTheory () {
this.first= first;
this.second= second;
}
var subject= new Array();
...
function arrSubject () {
...
this.theory= theory;
...
}
如何在更大的内部访问理论数组中的元素? 我试过了
subject[0].theory.first;
但
时无效subject[0].name;
这是大数组的另一个字段工作正常。我错过了什么?
答案 0 :(得分:0)
我认为关键是,你有一个数组元素为“obj”并添加到另一个数组。 所以要访问你可以尝试
主题[0] .theory [0]。首先;
我的意思是通过索引访问数组元素,然后访问对象的元素。
答案 1 :(得分:0)
好的,鉴于您提供的信息,我猜得很好。
theory
中的{p> subject[0].theory
是一个数组,对吗?你怎么用它来subject[0].theory.first
?您应该使用subject[0].theory[0]
之类的索引器。
在您向我们展示的代码中(在进行任何可能的修改之前),您不会向var theory= new Array();
还要注意确保this
是您真正期望的。在JavaScript中,这种情况的上下文会根据调用者的上下文而发生变化,有时会让人感到困惑。
答案 2 :(得分:0)
subject[0].theory[0].first;
试试。
答案 3 :(得分:0)
在this
和arrTheory()
中使用arrSubject()
会导致语法错误,因为它们不是对象,而是您需要将这些属性设置为theory
和{{1相反,所以你必须使用对应的数组名称,而不是像下面这样:
subject
然后您可以访问第一个和第二个属性,如下所示:
var theory= new Array();
var first = "first";
var second = "second";
function arrTheory () {
theory.first= first;
theory.second= second;
}
var subject= new Array();
function arrSubject () {
subject.theory= theory;
}
arrTheory();
arrSubject();
alert(subject.theory.first + " / " + subject.theory.second);
上面代码中的属性名称没有在主题中设置,如果它已经在原始代码中设置,你可以像这样调用它:
subject.theory.first
subject.theory.second