【发布时间】:2020-08-23 20:19:42
【问题描述】:
我正在尝试在 React 中实现排序可视化器。我有一个按钮,点击时会调用 selectionSort() 函数:
selectionSort() {
var arr = this.state;
console.log(arr);
var n = arr.length;
var i = 0;
var j = 0;
for (i = 0; i < n; ++i) {
var min = i;
for (j = i; j < n; ++j) {
if (arr[min] > arr[j]) {
min = j;
}
}
var temp = arr[min];
arr[min] = arr[i];
arr[i] = temp;
}
console.log("new array", arr);
}
但是,第二个 console.log() 应该给出排序后的数组,对吗?它没有,我无法弄清楚发生了什么。
【问题讨论】:
-
你会在谷歌上得到排序逻辑。只需在您的代码中使用它
-
这不是问题,我只需要使用
var arr = this.state.array;而不是var arr = this.state;无论如何感谢@VishalPawar -
您是否要直接在 reactjs 中对
this.state进行变异?确实不建议这样做,因为this.state是不可变的,请在排序前尝试复制它。 -
请不要像你一样设置反应状态。您应该始终使用
setState这样做。 reactjs.org/docs/… -
@HaoWu,我不知道。无论如何,我只是在尝试该算法是否可行。感谢您的意见,会记住的!
标签: javascript html reactjs selection-sort