Javascript 我需要找到主索引,但我的while循环正在退出?

Javascript 我需要找到主索引,但我的while循环正在退出?,javascript,binary-search,Javascript,Binary Search,var doSearch=函数(数组,targetValue){ var min=0; var max=array.length-1; var guess=数学地板((最小+最大)/2); var值=数组[猜测]; 同时(最小值

var doSearch=函数(数组,targetValue){
var min=0;
var max=array.length-1;
var guess=数学地板((最小+最大)/2);
var值=数组[猜测];
同时(最小值<最大值){
如果(值<目标值){
最小值=猜测+1;
}否则如果(值>目标值){
max=guess-1;
}
返回猜测
}
返回-1;
};
变量素数=[2,3,5,7,11,13,17,19,23,29,31,37,
41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97];
var结果=doSearch(素数,73);
警报(“在索引处找到质数”+结果)
  • 移动
    min
    max
    后,您没有更新猜测值

  • 您的循环返回第一次猜测,只有当猜测值等于搜索值时,才应执行第一次猜测

  • 代码中有许多问题需要解决,请查看我的注释:

    var doSearch=函数(数组,targetValue){
    var min=0;
    var max=array.length-1;
    var猜测;
    var值;
    
    while(min)请修复代码格式并将其添加到jsfiddle.net,以便我们可以更轻松地进行调试。因为您只需计算一次中间点,然后立即
    返回guess
    --它将始终返回该中间点,加上或减去1。将该行移出
    while
    (并修复更多--这不是答案!)@Jongware yes u r ryt我在while循环中写了“return guess”,还写了var guess=Math.floor((min+max)/2);var values=array[guess];将代码粘贴到while循环中,但现在我没有得到索引1920@Niko检查我的代码,你应该20@Amir它在这里工作,但不是在汗学院的编辑,它仍然说,在索引-1发现素数。