mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-04 08:57:49 +00:00
Re-optimize _.max, _.min, and _.sortedIndex.
Former-commit-id: 7f449a4fde6777f14a1def0d767f2926bdea07c9
This commit is contained in:
61
lodash.js
61
lodash.js
@@ -697,8 +697,8 @@
|
|||||||
'top': '',
|
'top': '',
|
||||||
'useHas': true,
|
'useHas': true,
|
||||||
'useStrict': isStrictFast,
|
'useStrict': isStrictFast,
|
||||||
'arrayBranch': {},
|
'arrayBranch': { 'beforeLoop': '' },
|
||||||
'objectBranch': {}
|
'objectBranch': { 'beforeLoop': '' }
|
||||||
};
|
};
|
||||||
|
|
||||||
var object,
|
var object,
|
||||||
@@ -2688,12 +2688,20 @@
|
|||||||
length = array ? array.length : 0,
|
length = array ? array.length : 0,
|
||||||
result = computed;
|
result = computed;
|
||||||
|
|
||||||
callback = createCallback(callback, thisArg);
|
if (callback) {
|
||||||
while (++index < length) {
|
callback = createCallback(callback, thisArg);
|
||||||
var current = callback(array[index], index, array);
|
while (++index < length) {
|
||||||
if (current > computed) {
|
var current = callback(array[index], index, array);
|
||||||
computed = current;
|
if (current > computed) {
|
||||||
result = array[index];
|
computed = current;
|
||||||
|
result = array[index];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
while (++index < length) {
|
||||||
|
if (array[index] > result) {
|
||||||
|
result = array[index];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
@@ -2723,12 +2731,20 @@
|
|||||||
length = array ? array.length : 0,
|
length = array ? array.length : 0,
|
||||||
result = computed;
|
result = computed;
|
||||||
|
|
||||||
callback = createCallback(callback, thisArg);
|
if (callback) {
|
||||||
while (++index < length) {
|
callback = createCallback(callback, thisArg);
|
||||||
var current = callback(array[index], index, array);
|
while (++index < length) {
|
||||||
if (current < computed) {
|
var current = callback(array[index], index, array);
|
||||||
computed = current;
|
if (current < computed) {
|
||||||
result = array[index];
|
computed = current;
|
||||||
|
result = array[index];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
while (++index < length) {
|
||||||
|
if (array[index] < result) {
|
||||||
|
result = array[index];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
@@ -2912,11 +2928,18 @@
|
|||||||
var low = 0,
|
var low = 0,
|
||||||
high = array ? array.length : low;
|
high = array ? array.length : low;
|
||||||
|
|
||||||
callback = createCallback(callback, thisArg);
|
if (callback) {
|
||||||
value = callback(value);
|
callback = createCallback(callback, thisArg);
|
||||||
while (low < high) {
|
value = callback(value);
|
||||||
var mid = (low + high) >>> 1;
|
while (low < high) {
|
||||||
callback(array[mid]) < value ? low = mid + 1 : high = mid;
|
var mid = (low + high) >>> 1;
|
||||||
|
callback(array[mid]) < value ? low = mid + 1 : high = mid;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
while (low < high) {
|
||||||
|
var mid = (low + high) >>> 1;
|
||||||
|
array[mid] < value ? low = mid + 1 : high = mid;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return low;
|
return low;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user