合并 2 个不可变的 JS 有序映射对象



我正在使用不可变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
)

相关内容

  • 没有找到相关文章

最新更新