2

私は次のものを持っています。

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" });

しかし、うまくいきません。

4

2 に答える 2

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
于 2013-11-13T00:27:25.273 に答える
3

JavaScriptfilterは配列メソッドです (ドキュメントを参照してください)。entities代わりに、オブジェクトのプロパティで呼び出す必要があります。

var objPillow = myRoom.entities.filter(function (entity) { 
  return entity.noun == "pillow" 
});
于 2013-11-13T00:26:21.567 に答える