npm https://www.npmjs.com/package/deepmerge
Github https://github.com/TehShrike/deepmerge
UMD
https://unpkg.com/deepmerge@4.2.2/dist/umd.js

  1. npm i deepmerge
  • 数组默认不会合并

merge(x,y,[option])

  1. import merge from 'deepmerge';
  2. const x = {
  3. foo: { bar: 3 },
  4. array: [{
  5. does: 'work',
  6. too: [ 1, 2, 3 ]
  7. }]
  8. }
  9. const y = {
  10. foo: { baz: 4 },
  11. quux: 5,
  12. array: [{
  13. does: 'work',
  14. too: [ 4, 5, 6 ]
  15. }, {
  16. really: 'yes'
  17. }]
  18. }
  19. deepmerge(x, y)
  20. // 输出
  21. {
  22. foo: {
  23. bar: 3,
  24. baz: 4
  25. },
  26. array: [{
  27. does: 'work',
  28. too: [ 1, 2, 3 ]
  29. }, {
  30. does: 'work',
  31. too: [ 4, 5, 6 ]
  32. }, {
  33. really: 'yes'
  34. }],
  35. quux: 5
  36. }

merge.all