根据属性的值从列表中删除对象的最简单的方法是什么?
我正在寻找相当于MongoDB中的$pull.
我的列表看起来很简单:
[{a: '1',b: '1'},{a: '2',b: '2'}]
而且我想从数组中删除属性设置为’1’的对象.在MongoDB中,我会这样做:
Model.update({_id: getCorrectParentObj},{ $pull: {listIDeleteFrom: { a: '1' } } },(err,result)=>{});
如何使用ImmutableJS获得相同的结果?
解决方法
你可以简单地说
filter
不可变的列表:
var test = Immutable.List.of(Immutable.Map({a: '1'}),Immutable.Map({a: '2'})); test = test.filter(function(item) { return item.get('a') !== '1' });
但是,对非空列表进行过滤将导致不同的不可变列表,因此您可能需要首先检查{a:1}的发生.
if (test.some(function(item) { return item.get('a') === '1'; })) { test = test.filter(function(item) { return item.get('a') !== '1' }); }