是否有一种简单的方法可以在具有数字键的不可变地图上执行范围查询(例如,让我用50至100之间的键获得所有k,v对?)
答案 0 :(得分:0)
这可以通过以下两种方法之一来完成。您可以:
不幸的是,ImmutableJS中没有内置的方法可以为您做到这一点。
以下是一些可帮助您的代码:
map = Immutable.Map([ [ 10, 'a' ], [ 20, 'b' ], [ 5, 'c' ], [ 100, 'd' ] ])
min = 0
max = 10
map.filter((_, key) => key >= min && key <= max)
let range = Array.apply(0, Array(max - min + 1)).map((_, index) => index + min);
return range.reduce((acc, key) => {
return map.has(key) ?
acc.set(key, map.get(key)) :
acc;
}, Immutable.Map())
https://observablehq.com/@alexrass/extract-range-from-immutable-map