ascor
Version:
一些常用的简单的js工具
36 lines (35 loc) • 1.22 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.deepMergeObject = void 0;
var index_1 = require("../is/index");
/**
* 深度合并对象
* 如果target(也就是FirstOBJ[key])存在,
* 且是对象的话再去调用deepObjectMerge,
* 否则就是FirstOBJ[key]里面没这个对象,需要与SecondOBJ[key]合并
*/
exports.deepMergeObject = function (FirstOBJ, SecondOBJ) {
if (!index_1.isObject(FirstOBJ)) {
return FirstOBJ;
}
if (!index_1.isObject(SecondOBJ)) {
return FirstOBJ;
}
var one = __assign({}, FirstOBJ), two = __assign({}, SecondOBJ);
// 深度合并对象
for (var key in two) {
one[key] = one[key] && index_1.isObject(one[key]) ? exports.deepMergeObject(one[key], two[key]) : (one[key] = two[key]);
}
return one;
};