【问题标题】:Merge 2 Immutable JS Ordered Map objects合并 2 个不可变 JS 有序映射对象
【发布时间】:2017-12-17 08:59:26
【问题描述】:

我正在使用 Immutable JS 作为我的 React Native 应用程序的 redux 存储。我有 2 个有序映射,它是列表的键控集合。当我尝试合并这 2 个有序映射时,如果键重叠,则数据将被覆盖。

例如:考虑我有 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() 方法

【问题讨论】:

  • 如果我们可以看到代码示例,可能会更容易发现问题。

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


【解决方案1】:

也许http://facebook.github.io/immutable-js/docs/#/Map/mergeWith 就是您要找的东西。在merger 函数中,您可以concat 列表。

根据mergeWith 提供的示例,我猜应该是这样的:

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

【讨论】:

    猜你喜欢
    • 2019-12-14
    • 2018-08-23
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    相关资源
    最近更新 更多