Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 建设性气泡排序未按预期工作_Javascript_Sorting_Bubble Sort - Fatal编程技术网

Javascript 建设性气泡排序未按预期工作

Javascript 建设性气泡排序未按预期工作,javascript,sorting,bubble-sort,Javascript,Sorting,Bubble Sort,我试图在JavaScript中创建一个简单的冒泡排序,但无法理解为什么我的代码不工作,问题似乎来自第二个if语句,我不知道确切的问题,因为我正在测试的浏览器在使用此代码时拒绝加载页面 var arr = [4, 6, 0, 3, -2, 1]; var arr2 = [arr[0]]; arr.forEach(function(elem){ for(var j=0; j<arr2.length; j++){ if(elem < arr2[j]){

我试图在JavaScript中创建一个简单的冒泡排序,但无法理解为什么我的代码不工作,问题似乎来自第二个if语句,我不知道确切的问题,因为我正在测试的浏览器在使用此代码时拒绝加载页面

var arr =  [4, 6, 0, 3, -2, 1];
var arr2 = [arr[0]];

arr.forEach(function(elem){
    for(var j=0; j<arr2.length; j++){
        if(elem < arr2[j]){
            arr2.splice(j, 0, elem);
            break;
        }   

        //if number is largest on last iteration add it to the end of the array
        if(j == arr2.length-1){ 
            console.log(elem);  
            //problem seems to be here 
            arr2[arr2.length] = elem;
        }
    }
});

console.log(arr);
console.log(arr2);
如果低于arr[j],则使用.splice将elem添加到数组中,但从未删除elem的旧实例。其次,您总是添加项目数组,并且它总是变得越来越大。您需要从数组中取出elem的旧实例,以便数组长度在每次迭代中保持不变

所以,在某个地方,您应该将1传递给splice的第二个参数,以便从数组中取出一些内容


我正在测试的浏览器在使用此代码时拒绝加载页面这意味着什么?你犯了什么错误?如果是这种情况,则错误不太可能与冒泡排序有关,也可能是语法错误。我的意思是浏览器在加载页面时卡住了,因此我必须实际关闭页面才能停止。奇怪的是,我不知道为什么会发生这种情况……或者可能是一个无限循环阻塞了浏览器;我想你是在开账单。@insertUserName这里我想你有点问题了,我将尝试在最后一个if语句中添加一个中断