获取OrderedMap的子集/过滤器

时间:2018-05-04 07:52:22

标签: immutable.js

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

集:

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

OrderedMap

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

filteredorderedMap

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

Slice,skip方法根据一系列键给出值。 或者我们可以使用deleteAll方法

选择和删除

1 个答案:

答案 0 :(得分:2)

您可以使用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