合并两个集合,不包括不可变js中的默认值

时间:2017-07-04 16:15:31

标签: immutable.js

我想合并使用相同构造函数创建的两个记录。

记录A使用字段a,b,c的值进行初始化,而记录B仅使用foo的值进行初始化。

构造函数具有所有字段的默认值,因此两个记录都以a,b,c,foo作为字段。

现在我想合并记录B"在"之上A(例如新记录)将包含来自A的a,b,c和来自B的foo

实际发生的是,B完全覆盖A中的值(诚然,这听起来合乎逻辑)。

是否有一种已知/简便的方法来合并记录,不包括默认值?我正在考虑编写一个识别构造函数的函数,从配置文件中找到默认值,并且有一些逻辑来排除默认值,但这听起来容易出错(如何在默认值和值之间进行区分)是合法的,但与默认值完全相同?)。

此外,我正在使用现有的代码库,并希望尽可能减少更改。

1 个答案:

答案 0 :(得分:1)

我想你想要<div id=services> <p1>Services</p1> <div id="test"></div> </div> docs

将一个方法从A类和B类中挂起来暴露自定义合并逻辑甚至是有意义的。这将允许您更容易地识别默认值(因为可能它们将在范围内)以及提供方便的访问。

用法看起来像:

mergeWith