d3.min & d3.max: ignore NaN at [0].
Note: this now returns Infinity and -Infinity for zero-element arrays, whereas previously an error would have occurred. Fixes #161.
This commit is contained in:
Родитель
7e08dc10ef
Коммит
25e77c4f67
|
@ -41,27 +41,25 @@ d3.descending = function(a, b) {
|
|||
return b < a ? -1 : b > a ? 1 : 0;
|
||||
};
|
||||
d3.min = function(array, f) {
|
||||
var i = 0,
|
||||
var i = -1,
|
||||
n = array.length,
|
||||
a = array[0],
|
||||
a = Infinity,
|
||||
b;
|
||||
if (arguments.length === 1) {
|
||||
while (++i < n) if (a > (b = array[i])) a = b;
|
||||
} else {
|
||||
a = f.call(array, a, 0);
|
||||
while (++i < n) if (a > (b = f.call(array, array[i], i))) a = b;
|
||||
}
|
||||
return a;
|
||||
};
|
||||
d3.max = function(array, f) {
|
||||
var i = 0,
|
||||
var i = -1,
|
||||
n = array.length,
|
||||
a = array[0],
|
||||
a = -Infinity,
|
||||
b;
|
||||
if (arguments.length === 1) {
|
||||
while (++i < n) if (a < (b = array[i])) a = b;
|
||||
} else {
|
||||
a = f.call(array, a, 0);
|
||||
while (++i < n) if (a < (b = f.call(array, array[i], i))) a = b;
|
||||
}
|
||||
return a;
|
||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -1,12 +1,11 @@
|
|||
d3.max = function(array, f) {
|
||||
var i = 0,
|
||||
var i = -1,
|
||||
n = array.length,
|
||||
a = array[0],
|
||||
a = -Infinity,
|
||||
b;
|
||||
if (arguments.length === 1) {
|
||||
while (++i < n) if (a < (b = array[i])) a = b;
|
||||
} else {
|
||||
a = f.call(array, a, 0);
|
||||
while (++i < n) if (a < (b = f.call(array, array[i], i))) a = b;
|
||||
}
|
||||
return a;
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
d3.min = function(array, f) {
|
||||
var i = 0,
|
||||
var i = -1,
|
||||
n = array.length,
|
||||
a = array[0],
|
||||
a = Infinity,
|
||||
b;
|
||||
if (arguments.length === 1) {
|
||||
while (++i < n) if (a > (b = array[i])) a = b;
|
||||
} else {
|
||||
a = f.call(array, a, 0);
|
||||
while (++i < n) if (a > (b = f.call(array, array[i], i))) a = b;
|
||||
}
|
||||
return a;
|
||||
|
|
|
@ -16,3 +16,11 @@ console.log(" " + d3.max([1, 2, 3, 4, 5], function(d, i) {
|
|||
return i;
|
||||
}));
|
||||
console.log("");
|
||||
|
||||
console.log("max with first element NaN:");
|
||||
console.log(" " + d3.max([NaN, 1, 2, 3, 4, 5]));
|
||||
console.log("");
|
||||
|
||||
console.log("max with last element NaN:");
|
||||
console.log(" " + d3.max([1, 2, 3, 4, 5, NaN]));
|
||||
console.log("");
|
||||
|
|
|
@ -7,3 +7,9 @@ max with accessor function:
|
|||
max index:
|
||||
4
|
||||
|
||||
max with first element NaN:
|
||||
5
|
||||
|
||||
max with last element NaN:
|
||||
5
|
||||
|
||||
|
|
|
@ -16,3 +16,11 @@ console.log(" " + d3.min([1, 2, 3, 4, 5], function(d, i) {
|
|||
return i;
|
||||
}));
|
||||
console.log("");
|
||||
|
||||
console.log("min with first element NaN:");
|
||||
console.log(" " + d3.min([NaN, 1, 2, 3, 4, 5]));
|
||||
console.log("");
|
||||
|
||||
console.log("min with last element NaN:");
|
||||
console.log(" " + d3.min([1, 2, 3, 4, 5, NaN]));
|
||||
console.log("");
|
||||
|
|
|
@ -7,3 +7,9 @@ min with accessor function:
|
|||
min index:
|
||||
0
|
||||
|
||||
min with first element NaN:
|
||||
1
|
||||
|
||||
min with last element NaN:
|
||||
1
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче