ramda 根据类型合并 2 json 个对象
ramda merging 2 json objects depending on there types
我需要合并 2 个 json 对象,当值是数组时,内容应该连接起来,如果值是原始类型,那么应该采用第一个对象的值。
R.mergeDeepWith(R.concat,
{ a: true, c: { values: [10, 20], d: { names: ['Alex']} }},
{ a: false, b: true, c: { values: [15, 35] , d: { address: ['Diesel Str 2']}}});
数组或深层对象正在工作,但对于键 a 我收到错误。
我可能会这样做:
const myMerge = mergeDeepWith(
(a, b) => is (Array) (a) && is (Array) (b) ? concat (a, b) : a)
console .log (myMerge (
{a: true, c: {values: [10, 20]}},
{a: false, b: true, c: {values: [15, 35]}}
))
<script src="//cdnjs.cloudflare.com/ajax/libs/ramda/0.27.1/ramda.min.js"></script>
<script>const {mergeDeepWith, is, concat} = R</script>
我们使用 mergeDeepWith
然后调用 concat
如果两个参数都是数组,如果不是则选择第一个。
我需要合并 2 个 json 对象,当值是数组时,内容应该连接起来,如果值是原始类型,那么应该采用第一个对象的值。
R.mergeDeepWith(R.concat,
{ a: true, c: { values: [10, 20], d: { names: ['Alex']} }},
{ a: false, b: true, c: { values: [15, 35] , d: { address: ['Diesel Str 2']}}});
数组或深层对象正在工作,但对于键 a 我收到错误。
我可能会这样做:
const myMerge = mergeDeepWith(
(a, b) => is (Array) (a) && is (Array) (b) ? concat (a, b) : a)
console .log (myMerge (
{a: true, c: {values: [10, 20]}},
{a: false, b: true, c: {values: [15, 35]}}
))
<script src="//cdnjs.cloudflare.com/ajax/libs/ramda/0.27.1/ramda.min.js"></script>
<script>const {mergeDeepWith, is, concat} = R</script>
我们使用 mergeDeepWith
然后调用 concat
如果两个参数都是数组,如果不是则选择第一个。