我正在使用不可变JS作为我的React Native App的redux存储。我有 2 个有序地图,它是列表的键控集合。当我尝试合并这两个有序映射时,如果键重叠,则数据被覆盖。
例如:考虑我有 2 张以日期为键的有序地图。当我合并它们时,如果它们都有相同日期的键,则该键的数据将被替换。如何在不丢失数据的情况下连接它们?
OrderedMap1: { '21-07-2017': 列表(10(, '22-07-2017': 列表(10(, '23-07-2017': 列表(10(, '24-07-2017': 列表(10( }
OrderedMap2: { '24-07-2017': 列表(5( }
当我尝试合并它们时,数据@键"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((方法
也许 http://facebook.github.io/immutable-js/docs/#/Map/mergeWith 就是你要找的。在merger
函数中,您可以concat
列表。
根据提供的示例mergeWith
它应该看起来像这样,我猜:
OrderedMap1.mergeWith(
(dates1, dates2) => dates1.concat(dates2),
OrderedMap2
)