Browse files

Fixes #435 -- allows _.max and _.min on arrays of dates without conve…

…rting them to numbers.
  • Loading branch information...
1 parent 908c015 commit 3512e7fc5c1164a5f6d1f4dc450d0e3895770255 @jashkenas jashkenas committed Jan 24, 2012
Showing with 9 additions and 3 deletions.
  1. +7 −1 test/collections.js
  2. +2 −2 underscore.js
View
8 test/collections.js
@@ -185,7 +185,9 @@ $(document).ready(function() {
// Relevant when using ClojureScript
test('collections: invoke when strings have a call method', function() {
- String.prototype.call = function(){return 42;}
+ String.prototype.call = function() {
+ return 42;
+ };
var list = [[5, 1, 7], [3, 2, 1]];
var s = "foo";
equals(s.call(), 42, "call function exists");
@@ -219,6 +221,10 @@ $(document).ready(function() {
equals(Infinity, _.min({}), 'Minimum value of an empty object');
equals(Infinity, _.min([]), 'Minimum value of an empty array');
+
+ var now = new Date(9999999999);
+ var then = new Date(0);
+ equals(_.min([now, then]), then);
});
test('collections: sortBy', function() {
View
4 underscore.js
@@ -224,7 +224,7 @@
// Return the maximum element or (element-based computation).
_.max = function(obj, iterator, context) {
- if (!iterator && _.isArray(obj)) return Math.max.apply(Math, obj);
+ if (!iterator && _.isArray(obj) && obj[0] === +obj[0]) return Math.max.apply(Math, obj);
if (!iterator && _.isEmpty(obj)) return -Infinity;
var result = {computed : -Infinity};
each(obj, function(value, index, list) {
@@ -236,7 +236,7 @@
// Return the minimum element (or element-based computation).
_.min = function(obj, iterator, context) {
- if (!iterator && _.isArray(obj)) return Math.min.apply(Math, obj);
+ if (!iterator && _.isArray(obj) && obj[0] === +obj[0]) return Math.min.apply(Math, obj);
if (!iterator && _.isEmpty(obj)) return Infinity;
var result = {computed : Infinity};
each(obj, function(value, index, list) {

0 comments on commit 3512e7f

Please sign in to comment.