javascript - 将预先创建的对象(o1,o2,o3 ..)存储在一个数组中

时间:2012-07-22 18:08:56

标签: javascript arrays object

我创建了几个对象.. p0,p1,p2,... p。其中max'n'是已知的。 p?对象中有自定义的方法(例如,startp())。

我想将它们推入一个数组(我们称之为'A')。这样,给定一些索引i,我想调用一些方法,如:A [i] .startp()。我的javascript代码:

A = [];
for (var i=0; i<=n; i++){
    A.push( eval('p'+i) );
}

我收到类似“ReferenceError:p0未定义”的错误。

感谢。

2 个答案:

答案 0 :(得分:2)

而不是:

var p0 = { x: "foo" };
var p1 = { x: "bar" };

等,只需这样做:

var A = [
  { x: "foo" },
  { x: "bar" }
];

答案 1 :(得分:1)

就个人而言,我只是按照Pointy给出的答案,但取决于p在哪里?声明(认为他们称之为范围)你可以做这样的事情来避免eval ....

var A = [];
for (var i=0; i<=n; i++){
    A.push(window['p'+i]);
}

...用有效的方法替换窗口;)...很难在没有看到更多代码的情况下给你一个确切的答案。