javascript - Javascript 新手。有人可以帮我调试我的程序吗?

标签 javascript debugging

我正在尝试在 javascript 中实现二进制搜索,我是 JS 的新手。我主要习惯于 C++ 语法,所以要改掉我已有的任何习惯对我来说有点困难。

当我将此脚本包含在 html 文档中时,如果数组大小小于 1,它无法退出脚本,如果我输入无序数组,则不会触发数组顺序警报。另外,程序似乎永远不会结束while循环,所以我不知道是否还有其他问题。

如有任何帮助,我们将不胜感激!

var size = parseInt(prompt("Enter the size of the array:"));

if(size < 1) {
    alert("ERROR: you entered an incorrect value for the array size!");
    return;
}

var arr = [size];
var input = parseInt(prompt("Enter the numbers in the array in increasing order,"
        + " separated by a space, and press enter:"));

arr = input.split(" ");

var checkOrder = function(array) {
    for(var i = 0; i < size-1; i++) {
        if(array[i] > array[i+1]) {
            return false;
        }
    }
    return true;
}

if(!checkOrder(arr)) {
    alert("The values entered for the array are not in increasing order!");
}

var search = parseInt(prompt("Enter a number to search for in the array: "));

var lp = 0; //left endpoint
var rp = size; //right endpoint
var mid = 0;
var counter = 0;
var found = false;

while(lp <= rp) {
    mid = Math.floor((lp + rp)/2);
    if(arr[mid] == search) {
        alert("Found value " + search + " at index " + mid);
        counter++;
        found = true;
        break;
    } else if(arr[mid] > search) {
        rp = mid + 1;
        counter++;
    } else {
        lp = mid;
        counter++;
    }
}

if(!found) {
    alert("The value " + search + "was not found in the array");
    alert("I wasted " + counter + " checks looking for a value that's not in the array!");
    return;
}  

最佳答案

var arr = [size];

上面的代码可能没有按照您的意愿进行。这将创建一个包含一个 元素的数组,其值为size 的值。您可以通过执行以下操作创建具有特定初始大小的数组:

var arr = new Array(size);

关于javascript - Javascript 新手。有人可以帮我调试我的程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12966740/

相关文章:

javascript - 为什么 Microsoft Skydrive 不下载多个文件,即使 MS 示例显示了它? (wl.下载)

javascript - 如何使用动态 url (slugs) 和 ng-include 在 Angular JS 中正确返回 404?

javascript - 从 map 的属性中提取特定值

c++ - 如何检查 C++ 中的位?

java - 复制源代码后 NetBeans 无法正确调试

javascript - React.js 状态未在 useEffect Hook 中的事件监听器中更新

javascript - 回调函数返回 wordpress 博客上具有给定类别的所有帖子的数组

debugging - 如何调试Grails中发送的参数

Python pandas 引用带有 "/"的列

ios - LLDB 命令 : 'fr v var' vs 'p var'