我有以下内容;
var room = function(){
this.entities = new Array();
}
var myRoom = new room();
我也有很多像这样的人;
var entity = function(){
this.title = "A pillow";
this.noun = "pillow";
}
我可以将许多实体推送到myRoom.entities数组中。
现在我想检查房间是否包含基于其名词的特定实体。
我尝试过这样的事情;
var objPillow = myRoom.filter(function (object) { return object.entities.noun == "pillow" });
但它不起作用。
答案 0 :(得分:3)
JavaScript filter
是一种数组方法(请参阅documentation)。您应该在对象的entities
属性上调用它:
var objPillow = myRoom.entities.filter(function (entity) {
return entity.noun == "pillow"
});
答案 1 :(得分:3)
根据您的短语“现在我想检查房间是否包含基于其名词的特定实体。”,因此您不需要实体本身,而是检查它的存在:
function check(noun){
return myRoom.entities.some(function(a){ return a.noun === noun; })
}
var sample = new Entity();
sample.noun = "Test";
sample.title = "Anything";
myRoom.entities.push(sample);
check("Test"); //>>true