web-dev-qa-db-ja.com

プロパティ値に基づいてImmutableJSリストからオブジェクトを削除します

プロパティの値に基づいてリストからオブジェクトを削除する最も簡単な方法は何ですか?

MongoDBで$ pullに相当するものを探しています。

私のリストは次のように簡単に見えます:

[{a: '1' , b: '1'},{a: '2' , b: '2'}]

そして、配列aが '1'に設定されたオブジェクトを配列から削除したいと思います。 MongoDBでは、次のようにします。

Model.update({_id: getCorrectParentObj},{ $pull: {listIDeleteFrom: { a: '1' } } },(err, result)=>{});

ImmutableJSで同じ結果を得るにはどうすればよいですか?

19
user3696212

単純に filter 不変リスト:

var test = Immutable.List.of(Immutable.Map({a: '1'}), Immutable.Map({a: '2'}));
test = test.filter(function(item) { return item.get('a') !== '1' });

ただし、空でないfilterに対してListを実行すると、異なる不変リストが生成されるため、最初に{a: 1}の発生を確認することをお勧めします。

if (test.some(function(item) { return item.get('a') === '1'; })) {
    test = test.filter(function(item) { return item.get('a') !== '1' });
}
23
okm