123456789101112131415161718192021222324252627282930 |
- import deepClone from "./deepClone";
- // JS对象深度合并
- function deepMerge(target = {}, source = {}) {
- target = deepClone(target);
- if (typeof target !== 'object' || typeof source !== 'object') return false;
- for (var prop in source) {
- if (!source.hasOwnProperty(prop)) continue;
- if (prop in target) {
- if (typeof target[prop] !== 'object') {
- target[prop] = source[prop];
- } else {
- if (typeof source[prop] !== 'object') {
- target[prop] = source[prop];
- } else {
- if (target[prop].concat && source[prop].concat) {
- target[prop] = target[prop].concat(source[prop]);
- } else {
- target[prop] = deepMerge(target[prop], source[prop]);
- }
- }
- }
- } else {
- target[prop] = source[prop];
- }
- }
- return target;
- }
- export default deepMerge;
|