Javascript js中插入排序后的无限逗号
我不知道为什么在Javascript中执行插入排序时会打印无限逗号。 所以我不能在浏览器中运行它,尽管我在jsbin中测试了它,链接是Javascript js中插入排序后的无限逗号,javascript,Javascript,我不知道为什么在Javascript中执行插入排序时会打印无限逗号。 所以我不能在浏览器中运行它,尽管我在jsbin中测试了它,链接是 varids=[3,4,8,5,33,56,23,67,231,12,43,50]; var j,i; 对于(j=2;j 1&&ids[i]>selectn){ ids[i+1]=ids[i]; i=i-1; } ids[i+1]=选择N; } 请告诉我为什么会这样,以及我如何更正它?修改数组时,ids.length的值会不断变化 首先缓存长度(var l=i
varids=[3,4,8,5,33,56,23,67,231,12,43,50];
var j,i;
对于(j=2;j 1&&ids[i]>selectn){
ids[i+1]=ids[i];
i=i-1;
}
ids[i+1]=选择N;
}
请告诉我为什么会这样,以及我如何更正它?修改数组时,
ids.length
的值会不断变化
首先缓存长度(
var l=ids.length
),并将循环更改为,以便(j=2;jAlways在您的问题中包含代码。请解释代码应该做什么。要自己调试问题,请设置断点,使用console.log
,检查变量,看看它们是否真的具有您期望的值。thnx,我会记在心里。您不使用JavaScri有什么原因吗PT <代码> SoTo()/代码>?我喜欢制作函数,有很强的基础。我无法找出无限逗号的错误来源,现在我得到了!
var ids = [3, 4, 8, 5, 33, 56, 23, 67, 231, 12, 43, 50];
var j, i;
for (j = 2; j <= ids.length; j++) {
var selectn = ids[j];
i = j - 1;
while (i > 1 && ids[i] > selectn) {
ids[i + 1] = ids[i];
i = i - 1;
}
ids[i + 1] = selectn;
}