【发布时间】:2021-03-24 22:04:12
【问题描述】:
我是这个论坛的新人,所以如果我发错了,我深表歉意。我在学习 Javascript 并且为了训练我做了这个冒泡排序算法:
var x = [1, 5, 2, 8, 3, 6, 4, 9, 7];
sort(x);
function sort(params) {
var appoggio=0;
for (i=0; i<params.length; i++) {
for (j=0; j<params.length; j++) {
appoggio=params[j];
params[j] = params[j+1];
params[j+1] = appoggio;
}
}
}
console.log(x);
我已经制作了一个基本的 html 页面,我在其中调用了这个脚本,但它不起作用,我不明白为什么。我尝试在 for 循环中插入一些警报(params [j]),但在第一次交互之后,scrpt 会阻止所有网页。我该怎么办?
【问题讨论】:
-
您在循环遍历数组时向数组中添加元素。这将导致无限循环。一个简单的解决方法是将数组长度存储在一个变量中。
-
另外,这不是导致错误的原因,但您应该在 for 循环条件中使用
let声明i和j,否则它们将成为全局变量。如for (let i=0; ... -
“我尝试在 for 循环中插入一些 alert(params[j]) 来调试它,但在第一次交互之后,scrpt 会阻止所有网页。”真正的调试器。大多数浏览器都提供了调试和分析代码的工具,例如您可以使用 Ctrl+Shift+I 打开 DevTools
标签: javascript algorithm sorting bubble-sort