자바 스크립트에서 이진 검색을 작성했습니다.왜 자바 스크립트 바이너리 검색이 잘못 되었습니까?
Array.prototype.binarySearch = function(find) {
var low = 0, high = this.length - 1,
i;
while (low <= high) {
i = Math.floor((low + high)/2);
if (this[i] > find) { low = i; continue; };
if (this[i] < find) { high = i; continue; };
return i;
}
return null;
}
내 정수 배열에서 5가 발견 되더라도 실패합니다.
var intArray = [1, 2, 3, 5]
if (intArray.binarySearch(5))
alert("found!");
else
alert("no found!");
여기는 피들입니다. http://jsfiddle.net/3uPUF/3/
, 당신은에서'this'을 놓치고'이 [내가]' –
오 감사합니다. 나는 그것을 알아 채지 못했다. – dangerChihuahua007
또한 'Array.prototype.binarySearch'를 사용하여 메소드를 정의해야하는 이유는 무엇입니까? 왜'Array.binarySearch'가 작동하지 않습니까? – dangerChihuahua007