UNPKG

1.28 kBJavaScriptView Raw
1import isArray from './is-array';
2import isPlainObject from './is-plain-object';
3var MAX_MIX_LEVEL = 5;
4function _deepMix(dist, src, level, maxLevel) {
5 level = level || 0;
6 maxLevel = maxLevel || MAX_MIX_LEVEL;
7 for (var key in src) {
8 if (src.hasOwnProperty(key)) {
9 var value = src[key];
10 if (value !== null && isPlainObject(value)) {
11 if (!isPlainObject(dist[key])) {
12 dist[key] = {};
13 }
14 if (level < maxLevel) {
15 _deepMix(dist[key], value, level + 1, maxLevel);
16 }
17 else {
18 dist[key] = src[key];
19 }
20 }
21 else if (isArray(value)) {
22 dist[key] = [];
23 dist[key] = dist[key].concat(value);
24 }
25 else if (value !== undefined) {
26 dist[key] = value;
27 }
28 }
29 }
30}
31// todo 重写
32var deepMix = function (rst) {
33 var args = [];
34 for (var _i = 1; _i < arguments.length; _i++) {
35 args[_i - 1] = arguments[_i];
36 }
37 for (var i = 0; i < args.length; i += 1) {
38 _deepMix(rst, args[i]);
39 }
40 return rst;
41};
42export default deepMix;
43//# sourceMappingURL=deep-mix.js.map
\No newline at end of file