做了一个带数值的列表柱状图,通过比较每一项的textContent来进行冒泡排序。已经完成了一个函数绑定了点击事件,实现了上述功能。现在想把排序过程可视化,让节点变化一步一步来,不要一次执行完毕。于是想到了setTimeout函数,但是特性不熟悉,尝试了几次,都是排一次,就不动了。
代码github地址:https://github.com/wozhizui/i...
1.做了一个列表柱状图,前端显示如下:

2.用一个冒泡的原理实现了排序,可以正常完成功能。代码如下:
function sortlist() {
var list = document.getElementsByClassName('hot');//取得整个列表
var count = list.length;//这个列表长度
while(count){
for (var i = 0; i < count-1; i++) {
if (list[i].textContent > list[i+1].textContent){
databox.insertBefore(list[i+1],list[i]);
}
}
count--;
}
}
3.自己尝试用setTimeout实现一步一步执行。未完成。
function sortlist() {
var list = document.getElementsByClassName('hot');
var count = list.length;
while(count){
var i = 0;
setTimeout(function(){
if (list[i].textContent > list[i+1].textContent) {
databox.insertBefore(list[i+1],list[i]);
};
i++;
if (i
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
重写了你的
sortlist,祝你玩的愉快题主可以去看看它是怎么做的 http://algo-visualizer.jasonp...