为什么会这样? (冒泡排序)[JavaScript]

Why is this happening? (Bubble Sort) [JavaScript]

我目前在 JavaScript 中遇到冒泡排序程序的一些问题,我似乎遇到的问题是,例如,当我给出 1 - 10 的数组值时,它会组织它们像这样:1,10,2,3,4,5,6,7,8,9.

这是我的代码:

function bubble(){

var array = [10];
var j=0;
var i=0;

for(i=0; i<10; i++){

array[i] = prompt("Inset a Number");

}
  for (i=0; i < 10; i++){

    for (j=0; j < 10; j++){

        if(array[j+1] < array[j]){

            temp = array[j];
            array[j] = array[j+1];
            array[j+1] = temp;
        }
    }
   }

alert(array);

}
    </script>

它正在将数据视为字符串并正确排序。您需要从 prompt() 中对您的输入进行 parseInt(),或者只减去 0。例如,prompt("Inset a Number")-0.

这些数字实际上是字符串,因为提示值是作为字符串返回的。 您需要像这样将字符串转换为 int:

array[i] = parseInt(prompt("Inset a Number"));

您目前正在比较字符串。因为prompt会return一个字符串,需要先转成int才能正确比较

array[i] = parseInt(prompt("Inset a Number"));