【发布时间】:2021-12-04 13:32:55
【问题描述】:
我正在做一个项目来帮助可视化排序算法,但我遇到了一个问题。
为了帮助可视化算法的排序过程,我必须在所述过程中显示数组中的每一个变化。
问题是我的数组只有在排序完成后才会在我的视图中更新,而在此过程中不会。
我的数组中只有整数。 p>
这是我显示数组的代码:
<span *ngFor="let v of tab">
{{v}}
</span
这是我的控制器: (超时用于减慢进程)
public sort(tab) {
let start = performance.now();
console.log(start);
let smallest;
for (let i = 0; i < tab.length; i++) {
smallest = tab[i];
for (let j = i + 1; j < tab.length; j++) {
setTimeout(() => { }, 100000);
if (tab[j] < smallest) {
let tmp = tab[j];
tab[j] = smallest;
tab[i] = tmp;
smallest = tmp;
//This doesn't update the view
this.tab = tab;
}
}
}
//This does
this.tab = tab;
let end = performance.now();
console.log(end);
this.time = end - start;
算法可能不是最有效的,但事实并非如此^^。
【问题讨论】:
-
@Cyclonecode 有什么意义?我的超时没有问题
-
你当然知道?不是像上面对
setTimeout()的调用会在继续下一次迭代之前等待吗? -
@Cyclonecode 改变了我回答你超时的方式,它起作用了,谢谢!我不明白,但现在我再次感谢
标签: html arrays angular typescript sorting