返回实例'for循环中的id
return instances' id inside a for loop
我有以下内容:
function Bee(name, id, lifespan, hitPoints) {
this.name = name;
this.id = id;
this.lifespan = lifespan;
this.hitPoints = hitPoints;
Bee.numInstances = (Bee.numInstances || 0) + 1;
return this;
}
内部文件准备好了:
$(document).ready(function(){
var BEE = BEE || {};
BEE.QueenBee = new Bee('QueenBee', 1, 100, 8);
BEE.WorkerBee = new Bee('WorkerBee1', 2, 75, 12);
BEE.WorkerBee = new Bee('WorkerBee2', 2, 75, 12);
BEE.WorkerBee = new Bee('WorkerBee3', 2, 75, 12);
BEE.WorkerBee = new Bee('WorkerBee4', 2, 75, 12);
BEE.WorkerBee = new Bee('WorkerBee5', 2, 75, 12);
BEE.DroneBee = new Bee('DroneBee1', 3, 50, 12);
BEE.DroneBee = new Bee('DroneBee2', 3, 50, 12);
BEE.DroneBee = new Bee('DroneBee3', 3, 50, 12);
BEE.DroneBee = new Bee('DroneBee4', 3, 50, 12);
BEE.DroneBee = new Bee('DroneBee5', 3, 50, 12);
BEE.DroneBee = new Bee('DroneBee6', 3, 50, 12);
BEE.DroneBee = new Bee('DroneBee7', 3, 50, 12);
BEE.DroneBee = new Bee('DroneBee8', 3, 50, 12);
//$('button').on('click', ba);
for(i = 0; i < Bee.numInstances; i++){
console.log(Bee.id === 2);
};
});
我的console.log返回14 false。我想检查/阻止循环,只返回ID为2的每个实例,因此"Bee.ID===2"
要继续蜜蜂主题,您可以创建一个蜂箱,在其中添加蜜蜂,并根据它们的id
返回蜜蜂。
function Hive() {}
Hive.prototype.bees = [];
Hive.prototype.addBee = function (bee) {
this.bees.push(bee);
};
Hive.prototype.getBeeIds = function (id) {
if (!id) return this.bees;
return this.bees.filter(function (bee) {
return bee.id === id;
});
}
var hive = new Hive();
添加蜜蜂:
hive.addBee(new Bee('WorkerBee1', 2, 75, 12));
hive.addBee(new Bee('DroneBee1', 3, 50, 12));
要检索具有特定id
的蜜蜂,请使用id
参数调用getBeeIds
。
hive.getBeeIds(2);
要检索所有蜜蜂,请调用不带id
参数的getBeeIds
。
hive.getBeeIds();
演示
首先,您试图将多个对象分配给对象的一个键。这是行不通的。您应该使用对象数组。为了筛选出正确的,我建议使用Array.filter()函数:
$(document).ready(function(){
var BEES = [];
BEES.push(new Bee('WorkerBee1',2,75,12);
BEES.push(new Bee('WorkerBee2',2,75,12);
BEES.push(new Bee('WorkerBee3',2,75,12);
var selectedBees = BEES.filter(function(bee){
return bee.id == 2;
});
console.log(selectedBees); //Should log Array of all 3 bees
});
map函数接受一个回调函数,该函数为要筛选的数组的每个条目调用。如果某个项的函数返回true,它将被推送到最终的selectedBees
数组中。如果错误,则不会发生任何事情。
编辑
我用地图代替了过滤器。地图的工作原理不同,只是看到了错误并修复了它!
相关文章:
- 希望日期开始结束于while循环中的一个房间id的一个数组
- 如何循环通过2个对象数组并通过匹配id进行合并
- 正在为循环创建唯一id
- 在qualtrics上使用javascript:循环块中的问题id
- 我们可以设置属性'id'到不同的'按钮'通过使用javascript或jquery的循环
- 当传递innerHTML和(this.id)时,循环不会终止
- 我想使用Javascript中的循环在HTML中的特定id中显示数组中的多个对象
- ID转入循环
- 使用 for 循环基于
id 从表中删除行 - 循环浏览页面上所有选中的复选框并将id拉入数组不起作用
- 如何制作id列表's或使用多个id的循环's在Javascript中
- 在标签上重申's id,使用下面的for循环和jquery
- 在javascript循环中创建唯一的Id按钮
- 返回实例'for循环中的id
- 类似系统:循环形成唯一id,得到这些id'使用jQuery/Javascript单独发布
- 正在获取循环中td元素的tr id
- 将递增的类与不同循环中递增的id进行匹配[jQuery/Wordpress]
- Greasemonkey添加一个按钮来循环ID
- 将关联的 ID 添加到 for 循环中的复选框
- Ruby on rails -如何在javascript中选择循环id