immutable.js - 获取 OrderedMap 的子集/过滤器

标签 immutable.js

按允许值列表过滤/获取 Subest OrderedMap

设置:

const allowed = ['item1', 'item3'];

有序映射

{
  item1: { key: 'sdfd', value:'sdfd' },
  item2: { key: 'sdfd', value:'sdfd' },
  item3: { key: 'sdfd', value:'sdfd' }
}

过滤有序 map

{
 item1: { key: 'sdfd', value:'sdfd' },
 item3: { key: 'sdfd', value:'sdfd' }
}

切片、跳过方法根据一系列键给出值。 或者我们可以使用deleteAll方法选择和删除

最佳答案

您可以通过使用 OrderedMap#filter 的自定义谓词来实现此目的:

function keyIn(...keys) {
  var keySet = Immutable.Set(keys); 
  return function (v, k) {
    return keySet.has(k);
  }
}

var data = Immutable.Map({ a: 1, b: 2, c: 3, d: 4 });
data.filter(keyIn('a', 'c')); // pick
// Map { a: 1, c: 3 }
data.filterNot(keyIn('a', 'c')); // omit
// Map { b: 2, d: 4 }

https://github.com/facebook/immutable-js/wiki/Predicates#pick--omit

关于immutable.js - 获取 OrderedMap 的子集/过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50169903/

相关文章:

javascript - 在 ImmutableJS 中更新列表中的对象

javascript - 为什么在这个 Immutable JS 测试中 equals 很慢?

javascript - 映射关联数组的值

reactjs - React/Redux 测试错误 : The initialState argument passed to createStore is of unexpected type

javascript - React Immutable JS 如何订购 map

javascript - immutable.js & react.js setState 清除对象原型(prototype)

javascript - 叶状组件中的 connect() 是 react+redux 中反模式的标志吗?

reactjs - 当使用 redux 和 immutable-js 时 - 你会在选择器上调用 toJS() 吗?或者您在渲染函数中使用 .get ('prop' )吗?

javascript - ImmutableJS 如何获取对象内部的值?