2013-04-01 131 views
-1

好的,我想访问一个循环中的对象,以便我的代码在每个对象中工作,不幸的是,我的对象位于另一个对象中。例如:如何通过偏移访问对象中的对象?

var object = new Object(); 
object.insider1 = new Object(); 

object.insider1.name = "ex"; 
object.insider1.type = "blah"; 

object.insider2 = new Object(); 

object.insider2.name = "Ex2"; 
object.insider2.type = "blah2"; 

现在用的循环来访问它:

for(var g=0; g<object[object.length]; g++){ 
//do stuff 
} 

对象[object.length]被标注为“不确定”,因此,我不能用它...有有任何解决这个问题的方法吗?谢谢!

+0

你会使用'for ... in'循环,但JS对象的属性本身是无序的。你最好使用一个数组,比如Nils的答案。 –

回答

2

在我看来,你真正想要的是一个数组属性来容纳你的“内部人”。我会这样做:

var object = new Object(); // or simply {} 
object.insiders = []; 
object.insiders.push({name: "ex", type: "blah"}); 
object.insiders.push({name: "Ex2", type: "Blah2"}); 
// Or object.insiders.push(insider1) if you have created them already 

for(var i = 0; i < object.insiders.length; i++) { 
    // Do stuff 
} 
+0

这正是我想要的,但我的insider1和insider2将如何获得数组内部人员的数组属性? – user2231784

+0

我不知道我明白你的意思。你的意思是如何让内部人进入阵列?我更新了这个例子。 – NilsH

+0

是的,但保留其对象属性 – user2231784