创建对象并将它们存储在数组中

时间:2015-05-15 21:32:46

标签: javascript arrays object

我对Javascript很陌生,而我要提出的问题可能非常简陋,但我仍然坚持一个项目,而且我还想要一些帮助。< / p>

基本上我正在做一个小型的Javascript项目,我希望在那里有一些敌人。一开始会有0个敌人,然后随着时间的推移,可能会产生更多的敌人。我在想,无论何时创建敌人,我都应该将其创建为一个对象,然后将其存储在一个包含游戏中所有活跃敌人的数组中。然后,稍后,我可以从阵列中移除需要移除的敌人。

这是创建我的敌人对象的函数:

&#13;
&#13;
function enemy(name, strength, rarity, estTime, success, remTime, Id){
	this.name = name;
	this.strength = strength;
	this.rarity = rarity;
	this.estTime = estTime;
	this.success = success;
	this.remTime = remTime;
	this.Id = Id;
}
&#13;
&#13;
&#13;

所以,我可以创造一些像这样的敌人:

&#13;
&#13;
var enemy1 = new enemy("Bob", 1, "Common", 100, 1, 30, 1)
var enemy2 = new enemy("Cow", 22, "Rare", 50, 10, 40, 2)
var enemy3 = new enemy("Pig", 333, "Epic", 25, 10, 50, 3)
&#13;
&#13;
&#13;

然后我可以创建一个敌人阵列,并将我的3个敌人放入该阵列中:

&#13;
&#13;
var enemies = [];
enemies = [enemy1, enemy2, enemy3];
&#13;
&#13;
&#13;

当我手动执行此操作时,所有细节和花花公子,但当我想尝试让代码自动创建更多敌人时问题就出现了。 假设每次用户按下按钮时我都想创建一个敌人。敌人的名字会得到一些名字,力量,稀有性,以及下一个Id在线(在这种情况下1,2和3正在使用,所以下一个将是4)。 我以为我可以这样做,但这不起作用:

&#13;
&#13;
enemy[enemies.length + 1] = new enemy("Dog", 444, "Epic", 13, 100, 60, 4);
enemies.push(enemy + [enemies.length + 1]);
&#13;
&#13;
&#13;

我希望这会创建一个名为&#34; enemy4&#34;使用name,id和我刚输入的任何内容,然后将该对象添加到敌人数组中。

但这显然不起作用。我希望你们了解这个问题,非常感谢任何帮助。我意识到我可能只是接近这一切都错了,而且可能存在一种更为简单的方法。

谢谢!

编辑:是的,答案非常简单,现在就知道了。谢谢!

1 个答案:

答案 0 :(得分:1)

var enemies = [
    new enemy(/*params here*/),
    new enemy(/*params here*/),
    new enemy(/*params here*/),
    new enemy(/*params here*/),
    new enemy(/*params here*/)
];

然后:

enemies.push(
    new enemy(/*params here*/)
);