ramda 几个 merge 的区别

ramda  几个 merge 的区别

mergeRight 在遇到键名相等时, 直接将该键设置为第二个参数对应的值

mergeDeepRight 会继续比较相等键里面的对象的值, 然后进行赋值, 直到最深层

表现上的不同就是, mergeRight会丢失前一个对象的值, 而mergeDeepRight会保留两者不同的部分, 相同部分使用第二个参数的值

const R = require("ramda")

const a = {
  a: {
    b: {c: 1}
  }
}

const b = {
  a: {
    b: {d: 2}
  }
}

console.log(R.merge(a, b))  // { a: { b: { d: 2 } } }
console.log(R.mergeRight(a, b)) // { a: { b: { d: 2 } } }
console.log(R.mergeLeft(a, b))  // { a: { b: { c: 1 } } }
console.log(R.mergeDeepRight(a, b)) // { a: { b: { c: 1, d: 2 } } }
console.log(R.mergeDeepLeft(a, b)) // { a: { b: { c: 1, d: 2 } } }

 

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » ramda 几个 merge 的区别