在javascript中访问另一个数组中的数组

时间:2013-04-27 14:59:05

标签: javascript

我有两个像这样定义的数组

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;

这是大数组的另一个字段工作正常。我错过了什么?

4 个答案:

答案 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)

thisarrTheory()中使用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

jsfiddle