ascor
Version:
一些常用的简单的js工具
33 lines (32 loc) • 1.08 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);
};
import { isObject } from "../is/index";
/**
* 深度合并对象
* 如果target(也就是FirstOBJ[key])存在,
* 且是对象的话再去调用deepObjectMerge,
* 否则就是FirstOBJ[key]里面没这个对象,需要与SecondOBJ[key]合并
*/
export var deepMergeObject = function (FirstOBJ, SecondOBJ) {
if (!isObject(FirstOBJ)) {
return FirstOBJ;
}
if (!isObject(SecondOBJ)) {
return FirstOBJ;
}
var one = __assign({}, FirstOBJ), two = __assign({}, SecondOBJ);
// 深度合并对象
for (var key in two) {
one[key] = one[key] && isObject(one[key]) ? deepMergeObject(one[key], two[key]) : (one[key] = two[key]);
}
return one;
};