【发布时间】:2018-06-22 13:51:34
【问题描述】:
最近,我很困惑我的代码出了什么问题。
问题:每次在输入字段中输入整数时,我都想进行冒泡排序。
结果应该是:1,2,3,4,5,6,7,8,9,10 > 但每次我输入 2 位数前。 1和10的结果将是
错误结果:1,10,2,3,4,5,6,7,8,9
var array = [];
function newfunction(){
var newArray = . document.getElementById("number").value
array.push(newArray);
console.log(array);
for( var i = 0; i < array.length; i++){
for (var j = array.length; j>1; j++){
if(parseInt(array[i-1]) < parseInt(array[i])){
var temp = array[i-1];
array [i-1] = array [i];
array[i]=temp;
}
}
}
}
【问题讨论】:
-
你做错事了......它正在比较字符串......
-
你怎么叫
newfunction分享你的HTML -
@PraveenKumar 我应该改变什么?
-
我可以看到的一个问题是您没有在循环体内使用
j。所以本质上,你只是多次比较 2 个元素 -
@hazy 试试这个:
var newArray = parseInt(document.getElementById("number").value);并摆脱j循环...