为什么会发生这种情况?(气泡排序)[JavaScript]

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

本文关键字:排序 气泡 JavaScript 情况 为什么      更新时间:2023-09-26

我目前在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()中解析输入,或者只减去0。例如,提示("插入数字")-0。

数字实际上是字符串,因为提示值是以字符串形式返回的。您需要将字符串转换为如下的int:

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

您当前正在比较字符串。由于prompt将返回一个字符串,因此需要将其转换为int,然后才能正确比较。

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