gpt4 book ai didi

javascript - 使用 Ramda 递归 "merge"或 "extend"?

转载 作者:数据小太阳 更新时间:2023-10-29 05:47:47 24 4
gpt4 key购买 nike

我正在尝试找到与 Lodash's merge 等效的函数使用 Ramda执行基于递归对象键的“合并”或“扩展”。该行为类似于以下内容:

let merged = R.someMethod(
{ name: 'Matt', address: { street: 'Hawthorne', number: 22, suffix: 'Ave' }},
{ address: { street: 'Pine', number: 33 }}
);

console.log(merged);

// => { name: 'Matt', address: { street: 'Pine', number: 33, suffix: 'Ave' }}

我注意到以下 pull request简要介绍了 R.set,然后 rolled back此后不久。从那以后,Ramda 库是否已捕获此功能?

这个功能在 Ramda 中可用吗?

最佳答案

可以使用 R.mergeWith 创建一个相对简单的递归函数。

function deepMerge(a, b) {
return (R.is(Object, a) && R.is(Object, b)) ? R.mergeWith(deepMerge, a, b) : b;
}

deepMerge({ name: 'Matt', address: { street: 'Hawthorne', number: 22, suffix: 'Ave' }},
{ address: { street: 'Pine', number: 33 }});

//=> {"address": {"number": 33, "street": "Pine", "suffix": "Ave"}, "name": "Matt"}

关于javascript - 使用 Ramda 递归 "merge"或 "extend"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38135416/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com