合并2个不可变的JS Ordered Map对象

时间:2017-07-12 19:26:27

标签: react-native immutable.js ordered-map

我使用Immutable JS作为我的React Native App的redux商店。我有2个Ordered Map,它是一个Keyed的列表集合。当我尝试合并这两个有序地图时,如果键重叠,则数据将被覆盖。

例如:考虑我有2个有序地图,日期为关键字。当我合并它们时,如果它们都具有相同日期的键,则该键的数据将被替换。如何在不丢失数据的情况下连接它们?

OrderedMap1:{   '21 -07-2017':列表(10),   '22 -07-2017':列表(10),   '23 -07-2017':列表(10),   '24 -07-2017':清单(10) }

OrderedMap2:{   '24 -07-2017':列表(5) }

当我尝试合并它们时,数据@ key '24 -07-2017'被替换 OrderedMap1.merge(OrderedMap2)给出 {   '21 -07-2017':列表(10),   '22 -07-2017':列表(10),   '23 -07-2017':列表(10),   '24 -07-2017':列表(5) }

我尝试过concat(),merge()和mergeDeep()方法

1 个答案:

答案 0 :(得分:0)

也许http://facebook.github.io/immutable-js/docs/#/Map/mergeWith是您正在寻找的。在merger功能中,您可以concat列表。

根据提供的mergeWith示例,它应该如下所示,我想:

OrderedMap1.mergeWith(
    (dates1, dates2) => dates1.concat(dates2),
    OrderedMap2
)