mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-01 23:57:49 +00:00
Ensure _.initial and _.last work with NaN values for n.
This commit is contained in:
@@ -2746,7 +2746,7 @@
|
||||
} else {
|
||||
n = (predicate == null || thisArg) ? 1 : predicate;
|
||||
}
|
||||
n = length - n;
|
||||
n = length - (n || 0);
|
||||
return slice(array, 0, n < 0 ? 0 : n);
|
||||
}
|
||||
|
||||
@@ -2840,8 +2840,8 @@
|
||||
return array ? array[length - 1] : undefined;
|
||||
}
|
||||
}
|
||||
n = length - n;
|
||||
return slice(array, n < 0 ? 0 : n);
|
||||
n = length - (n || 0);
|
||||
return slice(array, n < 0 ? 0 : n);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
32
test/test.js
32
test/test.js
@@ -2577,14 +2577,14 @@
|
||||
deepEqual(_.first(array, 2), [1, 2]);
|
||||
});
|
||||
|
||||
test('should return an empty array when `n` < `1`', 3, function() {
|
||||
_.forEach([0, -1, -2], function(n) {
|
||||
test('should return an empty array when `n` < `1`', 4, function() {
|
||||
_.forEach([0, -1, NaN, -Infinity], function(n) {
|
||||
deepEqual(_.first(array, n), []);
|
||||
});
|
||||
});
|
||||
|
||||
test('should return all elements when `n` >= `array.length`', 2, function() {
|
||||
_.forEach([3, 4], function(n) {
|
||||
test('should return all elements when `n` >= `array.length`', 4, function() {
|
||||
_.forEach([3, 4, Math.pow(2, 32), Infinity], function(n) {
|
||||
deepEqual(_.first(array, n), array);
|
||||
});
|
||||
});
|
||||
@@ -3644,14 +3644,14 @@
|
||||
deepEqual(_.initial([]), []);
|
||||
});
|
||||
|
||||
test('should return all elements when `n` < `1`', 3, function() {
|
||||
_.forEach([0, -1, -2], function(n) {
|
||||
test('should return all elements when `n` < `1`', 4, function() {
|
||||
_.forEach([0, -1, NaN, -Infinity], function(n) {
|
||||
deepEqual(_.initial(array, n), array);
|
||||
});
|
||||
});
|
||||
|
||||
test('should return an empty array when `n` >= `array.length`', 2, function() {
|
||||
_.forEach([3, 4], function(n) {
|
||||
test('should return an empty array when `n` >= `array.length`', 4, function() {
|
||||
_.forEach([3, 4, Math.pow(2, 32), Infinity], function(n) {
|
||||
deepEqual(_.initial(array, n), []);
|
||||
});
|
||||
});
|
||||
@@ -5315,14 +5315,14 @@
|
||||
deepEqual(_.last(array, 2), [2, 3]);
|
||||
});
|
||||
|
||||
test('should return an empty array when `n` < `1`', 3, function() {
|
||||
_.forEach([0, -1, -2], function(n) {
|
||||
test('should return an empty array when `n` < `1`', 4, function() {
|
||||
_.forEach([0, -1, NaN, -Infinity], function(n) {
|
||||
deepEqual(_.last(array, n), []);
|
||||
});
|
||||
});
|
||||
|
||||
test('should return all elements when `n` >= `array.length`', 2, function() {
|
||||
_.forEach([3, 4], function(n) {
|
||||
test('should return all elements when `n` >= `array.length`', 4, function() {
|
||||
_.forEach([3, 4, Math.pow(2, 32), Infinity], function(n) {
|
||||
deepEqual(_.last(array, n), array);
|
||||
});
|
||||
});
|
||||
@@ -7362,14 +7362,14 @@
|
||||
deepEqual(_.rest(array, 2), [3]);
|
||||
});
|
||||
|
||||
test('should return all elements when `n` < `1`', 3, function() {
|
||||
_.forEach([0, -1, -2], function(n) {
|
||||
test('should return all elements when `n` < `1`', 4, function() {
|
||||
_.forEach([0, -1, NaN, -Infinity], function(n) {
|
||||
deepEqual(_.rest(array, n), [1, 2, 3]);
|
||||
});
|
||||
});
|
||||
|
||||
test('should return an empty array when `n` >= `array.length`', 2, function() {
|
||||
_.forEach([3, 4], function(n) {
|
||||
test('should return an empty array when `n` >= `array.length`', 4, function() {
|
||||
_.forEach([3, 4, Math.pow(2, 32), Infinity], function(n) {
|
||||
deepEqual(_.rest(array, n), []);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user