Skip to content

Commit 55dc3a2

Browse files
committed
Merge branch 'mean' into 3.4.6
2 parents c693847 + c0e84e2 commit 55dc3a2

4 files changed

Lines changed: 11 additions & 15 deletions

File tree

d3.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,13 +91,13 @@
9191
return x != null && !isNaN(x);
9292
}
9393
d3.mean = function(array, f) {
94-
var n = array.length, a, m = 0, i = -1, j = 0;
94+
var s = 0, n = array.length, a, i = -1, j = n;
9595
if (arguments.length === 1) {
96-
while (++i < n) if (d3_number(a = array[i])) m += (a - m) / ++j;
96+
while (++i < n) if (d3_number(a = array[i])) s += a; else --j;
9797
} else {
98-
while (++i < n) if (d3_number(a = f.call(array, array[i], i))) m += (a - m) / ++j;
98+
while (++i < n) if (d3_number(a = f.call(array, array[i], i))) s += a; else --j;
9999
}
100-
return j ? m : undefined;
100+
return j ? s / j : undefined;
101101
};
102102
d3.quantile = function(values, p) {
103103
var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h;

d3.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/arrays/mean.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
import "../math/number";
22

33
d3.mean = function(array, f) {
4-
var n = array.length,
4+
var s = 0,
5+
n = array.length,
56
a,
6-
m = 0,
77
i = -1,
8-
j = 0;
8+
j = n;
99
if (arguments.length === 1) {
10-
while (++i < n) if (d3_number(a = array[i])) m += (a - m) / ++j;
10+
while (++i < n) if (d3_number(a = array[i])) s += a; else --j;
1111
} else {
12-
while (++i < n) if (d3_number(a = f.call(array, array[i], i))) m += (a - m) / ++j;
12+
while (++i < n) if (d3_number(a = f.call(array, array[i], i))) s += a; else --j;
1313
}
14-
return j ? m : undefined;
14+
return j ? s / j : undefined;
1515
};

test/arrays/mean-test.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,6 @@ suite.addBatch({
1818
assert.equal(mean([1, 2, 3, 4, 5, NaN]), 3);
1919
assert.equal(mean([10, null, 3, undefined, 5, NaN]), 6);
2020
},
21-
"can handle large numbers without overflowing": function(mean) {
22-
assert.equal(mean([Number.MAX_VALUE, Number.MAX_VALUE]), Number.MAX_VALUE);
23-
assert.equal(mean([-Number.MAX_VALUE, -Number.MAX_VALUE]), -Number.MAX_VALUE);
24-
},
2521
"returns undefined for empty array": function(mean) {
2622
assert.isUndefined(mean([]));
2723
assert.isUndefined(mean([null]));

0 commit comments

Comments
 (0)