50380d5a
mwasiluk
d3 scatterplot-da...
|
1
2
3
|
function D3ScatterPlotUtils(){}
// usage example deepExtend({}, objA, objB); => should work similar to $.extend(true, {}, objA, objB);
|
42187739
mwasiluk
updated d3-scatte...
|
4
|
D3ScatterPlotUtils.prototype.deepExtend = function (out) {
|
50380d5a
mwasiluk
d3 scatterplot-da...
|
5
|
|
42187739
mwasiluk
updated d3-scatte...
|
6
7
8
9
10
11
12
|
var utils = this;
var emptyOut = {};
if (!out && arguments.length > 1 && Array.isArray(arguments[1])) {
out = [];
}
|
50380d5a
mwasiluk
d3 scatterplot-da...
|
13
14
15
|
out = out || {};
for (var i = 1; i < arguments.length; i++) {
|
42187739
mwasiluk
updated d3-scatte...
|
16
17
|
var source = arguments[i];
if (!source)
|
50380d5a
mwasiluk
d3 scatterplot-da...
|
18
19
|
continue;
|
42187739
mwasiluk
updated d3-scatte...
|
20
21
22
23
24
25
26
27
28
29
30
31
|
for (var key in source) {
if (!source.hasOwnProperty(key)) {
continue;
}
var isArray = Array.isArray(out[key]);
var isObject = utils.isObject(out[key]);
var srcObj = utils.isObject(source[key]);
if (isObject && !isArray && srcObj) {
utils.deepExtend(out[key], source[key]);
} else {
out[key] = source[key];
|
50380d5a
mwasiluk
d3 scatterplot-da...
|
32
33
34
35
36
37
38
|
}
}
}
return out;
};
|
42187739
mwasiluk
updated d3-scatte...
|
39
40
41
42
43
44
45
46
47
|
D3ScatterPlotUtils.prototype.isObject = function(a) {
return a !== null && typeof a === 'object';
};
D3ScatterPlotUtils.prototype.isNumber = function(a) {
return !isNaN(a) && typeof a === 'number';
};
D3ScatterPlotUtils.prototype.isFunction = function(a) {
return typeof a === 'function';
};
|