Files
intranet/resources/js/binaryIndexOf.js
2020-12-01 17:23:13 -03:00

28 lines
567 B
JavaScript

function binaryIndexOf(searchElement) {
'use strict';
var minIndex = 0;
var maxIndex = this.length - 1;
var currentIndex;
var currentElement;
var resultIndex;
while (minIndex <= maxIndex) {
resultIndex = currentIndex = (minIndex + maxIndex) / 2 | 0;
currentElement = this[currentIndex];
if (currentElement < searchElement) {
minIndex = currentIndex + 1;
}
else if (currentElement > searchElement) {
maxIndex = currentIndex - 1;
}
else {
return currentIndex;
}
}
return ~maxIndex;
}
Array.prototype.binaryIndexOf = binaryIndexOf;