mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-01-29 06:27:49 +00:00
Short circuit sortedIndexBy methods for empty arrays (#4496)
This commit is contained in:
committed by
John-David Dalton
parent
898b378f06
commit
23286d6428
@@ -18,10 +18,14 @@ const MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1
|
||||
* into `array`.
|
||||
*/
|
||||
function baseSortedIndexBy(array, value, iteratee, retHighest) {
|
||||
value = iteratee(value)
|
||||
|
||||
let low = 0
|
||||
let high = array == null ? 0 : array.length
|
||||
if (high == 0) {
|
||||
return 0
|
||||
}
|
||||
|
||||
value = iteratee(value)
|
||||
|
||||
const valIsNaN = value !== value
|
||||
const valIsNull = value === null
|
||||
const valIsSymbol = isSymbol(value)
|
||||
|
||||
@@ -24,6 +24,13 @@ describe('sortedIndexBy methods', function() {
|
||||
assert.strictEqual(actual, 1);
|
||||
});
|
||||
|
||||
it('`_.' + methodName + '` should avoid calling iteratee when length is 0', function() {
|
||||
var objects = [],
|
||||
actual = func(objects, { 'x': 50 }, assert.fail);
|
||||
|
||||
assert.strictEqual(actual, 0);
|
||||
});
|
||||
|
||||
it('`_.' + methodName + '` should support arrays larger than `MAX_ARRAY_LENGTH / 2`', function() {
|
||||
lodashStable.each([Math.ceil(MAX_ARRAY_LENGTH / 2), MAX_ARRAY_LENGTH], function(length) {
|
||||
var array = [],
|
||||
|
||||
Reference in New Issue
Block a user