immer.js 合并嵌套对象
immer.js merge nested object
我想使用 immer.js
合并嵌套对象
合并两个嵌套对象一直很困难。
我想知道以下是否适用于任何图书馆..
state = {
lv1_1: {
lv2_1: {
lv3_1: 'foo1',
lv3_2: 'foo2',
},
lv2_2: {
lv3_2: 'foo2'
}
},
lv1_2: {
lv2_1: 'foo'
}
}
lv1_1 = {
lv2_1: {
lv3_1: 'bar'
}
}
合并 lv1_1 与状态,我想要以下输出。
state = {
lv1_1: {
lv2_1: {
lv3_1: 'bar',
lv3_2: 'foo2',
},
lv2_2: {
lv3_2: 'foo2'
}
},
lv1_2: {
lv2_1: 'foo'
}
}
我试过immerse.js但是下面的代码
draft.lv1_1 = {...draft.lv1_1, ...lv1_1}
好像给
state = {
lv1_1: {
lv2_1: {
lv3_1: 'bar'
}
}
}
I wonder if the following is possible with any library..
你可以试试lodash.merge
:
const a = {
lv1_1: {
lv2_1: {
lv3_1: 'foo1',
lv3_2: 'foo2'
},
lv2_2: {
lv3_2: 'foo2'
}
},
lv1_2: {
lv2_1: 'foo'
}
};
const b = {
lv1_1: {
lv2_1: {
lv3_1: 'bar'
}
}
};
console.log(_.merge(a, b));
我想使用 immer.js
合并嵌套对象合并两个嵌套对象一直很困难。
我想知道以下是否适用于任何图书馆..
state = {
lv1_1: {
lv2_1: {
lv3_1: 'foo1',
lv3_2: 'foo2',
},
lv2_2: {
lv3_2: 'foo2'
}
},
lv1_2: {
lv2_1: 'foo'
}
}
lv1_1 = {
lv2_1: {
lv3_1: 'bar'
}
}
合并 lv1_1 与状态,我想要以下输出。
state = {
lv1_1: {
lv2_1: {
lv3_1: 'bar',
lv3_2: 'foo2',
},
lv2_2: {
lv3_2: 'foo2'
}
},
lv1_2: {
lv2_1: 'foo'
}
}
我试过immerse.js但是下面的代码
draft.lv1_1 = {...draft.lv1_1, ...lv1_1}
好像给
state = {
lv1_1: {
lv2_1: {
lv3_1: 'bar'
}
}
}
I wonder if the following is possible with any library..
你可以试试lodash.merge
:
const a = {
lv1_1: {
lv2_1: {
lv3_1: 'foo1',
lv3_2: 'foo2'
},
lv2_2: {
lv3_2: 'foo2'
}
},
lv1_2: {
lv2_1: 'foo'
}
};
const b = {
lv1_1: {
lv2_1: {
lv3_1: 'bar'
}
}
};
console.log(_.merge(a, b));