NuclearDispersionSystem/ant-design-vue-jeecg/node_modules/@antv/util/lib/deep-mix.js
2023-09-14 14:47:11 +08:00

44 lines
1.1 KiB
Java

var isPlainObject = require('./type/is-plain-object');
var isArray = require('./type/is-array');
var MAX_MIX_LEVEL = 5;
function _deepMix(dist, src, level, maxLevel) {
level = level || 0;
maxLevel = maxLevel || MAX_MIX_LEVEL;
for (var key in src) {
if (src.hasOwnProperty(key)) {
var value = src[key];
if (value !== null && isPlainObject(value)) {
if (!isPlainObject(dist[key])) {
dist[key] = {};
}
if (level < maxLevel) {
_deepMix(dist[key], value, level + 1, maxLevel);
} else {
dist[key] = src[key];
}
} else if (isArray(value)) {
dist[key] = [];
dist[key] = dist[key].concat(value);
} else if (value !== undefined) {
dist[key] = value;
}
}
}
}
var deepMix = function deepMix() {
var args = new Array(arguments.length);
var length = args.length;
for (var i = 0; i < length; i++) {
args[i] = arguments[i];
}
var rst = args[0];
for (var _i = 1; _i < length; _i++) {
_deepMix(rst, args[_i]);
}
return rst;
};
module.exports = deepMix;