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

标签 javascript node.js immutable.js

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

我正在寻找 MongoDB 中的 $pull 等效项。

我的列表看起来很简单,如下所示:

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

我想从数组中删除属性 a 设置为“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' });

但是,非空 List 上的 filter 会产生不同的不可变列表,因此您可能需要检查 {a: 1} 首先:

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

关于javascript - 根据属性值从 ImmutableJS 列表中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31466400/

相关文章:

javascript - 如何将文件附加到 iPhone PhoneGap jQuery Mobile 中的邮件

mysql - 将 MySQL 与 WebStorm 结合使用不起作用

javascript - 如何将变量从angularJS插入到jade模板(node.js)中的字符串

javascript - 如何对不可变映射内的项目进行排序(交换)?

typescript |不可变 |扩展 Immutable.Map 类型的正确方法

javascript - 如何停止元素上的计时器功能

javascript - 将路由组件的选择器留在原地有什么缺点吗?

javascript - 使用不可变的js将reducer状态设置为返回的数组

javascript - WordPress JavaScript 类型错误 : Cannot read property 'text' of null

jquery - 使用 fetch 获取简单字符串