Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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 Can';我看不到输出_Javascript_Html_Arrays_Sorting_Insertion Sort - Fatal编程技术网

Javascript Can';我看不到输出

Javascript Can';我看不到输出,javascript,html,arrays,sorting,insertion-sort,Javascript,Html,Arrays,Sorting,Insertion Sort,下面的代码是一个带有JS的简单HTML页面,它将使用插入排序对5个数字进行排序。问题是输出无法打印 <html> <script> function Ascending() { var array = new Array(); array[0]=document.getElementById("1").value; array[1]=document.getElementById("2").value; arr

下面的代码是一个带有JS的简单HTML页面,它将使用插入排序对5个数字进行排序。问题是输出无法打印

   <html>
    <script>
    function Ascending()
    {
    var array = new Array();
    array[0]=document.getElementById("1").value;
    array[1]=document.getElementById("2").value;
    array[2]=document.getElementById("3").value;
    array[3]=document.getElementById("4").value;
    array[4]=document.getElementById("5").value;

    var j, temp;

        for (var i = 1; i < array.length; i++){
            temp = array[i];
            j = i - 1;      
            while ((j >= 0) && (temp < array [j]))  
            {
                array[j + 1] = array[j];        
                j--;                    
            }
            array[j + 1] = temp;                
        }


        for (var i = i; i <array. length; i++)
    {
    var output =document.getElementById("display");
    output.innerHTML+=numbers[i]+ ' , ';
    }
    }
    </script>

函数升序()
{
var数组=新数组();
数组[0]=document.getElementById(“1”).value;
数组[1]=document.getElementById(“2”).value;
数组[2]=document.getElementById(“3”).value;
数组[3]=document.getElementById(“4”).value;
数组[4]=document.getElementById(“5”).value;
变量j,温度;
对于(变量i=1;i=0)和&(temp

如果您可以给我一些建议和反馈:)

有许多打字错误给您带来了麻烦。看起来有些变量被重命名了,但您没有重命名所有出现的变量。另外,您将以
i=i
而不是
i=0
开始最后一个循环

// was: pos = i - 1;        
// should be:
j = i - 1;

// was: for (var i = i; i <array. length; i++)
// should be:
for (var i = 0; i <array.length; i++)

// was: output.innerHTML+=numbers[x]+ ' , ';
// should be:
output.innerHTML += array[i] + ' , ';
//was:pos=i-1;
//应该是:
j=i-1;

//was:for(var i=i;i

作为旁白-我意识到您只是在代码中练习排序例程-如果您想:

function Ascending() {

  // use class names and you can grab all the input elements at once
  var inputs = document.getElementsByClassName('number');

  // convert the arrayList to a normal array
  var arr = Array.prototype.slice.call(inputs);

  // create a new array containing only the values
  var valArr = arr.map(function (el) { return el.value; });

  // create a string from the sorted and joined array of numbers
  var str = valArr.sort(function (a, b) { return a - b; }).join(', ');

  // output the string
  var output = document.getElementById('display');
  output.innerHTML = str;
}

首先考虑变量“j”如何获得其初始值。非常感谢。是的,我实际上重命名了该变量,因为该代码是冒泡排序的原始代码,我不想混淆,因为我计划在一个html中混合使用这两种排序。对不起,我的错误。
function Ascending() {

  // use class names and you can grab all the input elements at once
  var inputs = document.getElementsByClassName('number');

  // convert the arrayList to a normal array
  var arr = Array.prototype.slice.call(inputs);

  // create a new array containing only the values
  var valArr = arr.map(function (el) { return el.value; });

  // create a string from the sorted and joined array of numbers
  var str = valArr.sort(function (a, b) { return a - b; }).join(', ');

  // output the string
  var output = document.getElementById('display');
  output.innerHTML = str;
}