mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-11 03:17: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`.
|
* into `array`.
|
||||||
*/
|
*/
|
||||||
function baseSortedIndexBy(array, value, iteratee, retHighest) {
|
function baseSortedIndexBy(array, value, iteratee, retHighest) {
|
||||||
value = iteratee(value)
|
|
||||||
|
|
||||||
let low = 0
|
let low = 0
|
||||||
let high = array == null ? 0 : array.length
|
let high = array == null ? 0 : array.length
|
||||||
|
if (high == 0) {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
value = iteratee(value)
|
||||||
|
|
||||||
const valIsNaN = value !== value
|
const valIsNaN = value !== value
|
||||||
const valIsNull = value === null
|
const valIsNull = value === null
|
||||||
const valIsSymbol = isSymbol(value)
|
const valIsSymbol = isSymbol(value)
|
||||||
|
|||||||
@@ -24,6 +24,13 @@ describe('sortedIndexBy methods', function() {
|
|||||||
assert.strictEqual(actual, 1);
|
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() {
|
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) {
|
lodashStable.each([Math.ceil(MAX_ARRAY_LENGTH / 2), MAX_ARRAY_LENGTH], function(length) {
|
||||||
var array = [],
|
var array = [],
|
||||||
|
|||||||
Reference in New Issue
Block a user