name | immutable | concat | dedupe | clone | multiple parameters | recommended |
---|---|---|---|---|---|---|
merge-deep @3.0.2 |
true |
true |
true |
true |
yes | yes |
deepmerge @3.0.0 |
true |
true |
false |
false (option) |
no | |
lodash/mege |
false |
false |
false |
true |
yes | |
lodash/megeWith |
false |
false |
false |
true |
yes | yes |
- https://www.npmjs.com/package/merge-deep
- https://www.npmjs.com/package/deepmerge
- https://lodash.com/docs/4.17.11#mergeWith
merge-deep
:
mergeDeep(...objects)
deepmerge
:
deepmerge(a, b, {clone: false})
deepmerge.all([a, b, c], {clone: false})
lodash
:
const concatMerge = (...args) => mergeWith({}, ...args, (dest, src) => {
if (Array.isArray(dest)) {
return dest.concat(src)
}
})