MCPcopy Create free account
hub / github.com/Useful-Scripts-Extension/useful-script / deepMerge

Function deepMerge

scripts/libs/utils/object.js:67–87  ·  view source on GitHub ↗
(objA, objB)

Source from the content-addressed store, hash-verified

65 }
66 if (!isObj(objA) || !isObj(objB)) return objA;
67 function deepMerge(objA, objB) {
68 forIn(objB, function (key) {
69 const subItemA = objA[key];
70 const subItemB = objB[key];
71 if (typeof subItemA === "undefined") {
72 objA[key] = subItemB;
73 } else {
74 if (isObj(subItemA) && isObj(subItemB)) {
75 /* 进行深层合并 */
76 objA[key] = deepMerge(subItemA, subItemB);
77 } else {
78 if (concatArr && isArr(subItemA) && isArr(subItemB)) {
79 objA[key] = subItemA.concat(subItemB);
80 } else {
81 objA[key] = subItemB;
82 }
83 }
84 }
85 });
86 return objA;
87 }
88 return deepMerge(objA, objB);
89}
90

Callers 1

mergeObjFunction · 0.85

Calls 4

forInFunction · 0.85
concatMethod · 0.80
isObjFunction · 0.70
isArrFunction · 0.70

Tested by

no test coverage detected