微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 根据属性值从ImmutableJS列表中删除对象

根据属性的值从列表中删除对象的最简单的方法是什么?

我正在寻找相当于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' });
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐