web-dev-qa-db-fra.com

Supprimer un objet de la liste ImmutableJS en fonction de la valeur de la propriété

Quelle serait la façon la plus simple de supprimer un objet d'une liste en fonction de la valeur d'une propriété?

Je cherche un équivalent de $ pull dans MongoDB.

Ma liste ressemble à ceci:

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

Et je voudrais supprimer du tableau l'objet dont la propriété a définie sur '1'. Dans MongoDB, je le ferais comme ceci:

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

Comment puis-je obtenir le même résultat avec ImmutableJS?

19
user3696212

Vous pouvez simplement filter la liste immuable:

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

Cependant, filter sur un List non vide entraînerait une liste immuable différente, donc vous voudrez peut-être vérifier l'occurrence de {a: 1} première:

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