【发布时间】:2020-08-21 13:04:52
【问题描述】:
我正在尝试使用 React 构建排序可视化工具。 现在我正在实现冒泡排序,我想在排序的每个阶段查看我的数组。
class Sorter extends Component {
state = {
array: [100,4,214,55,11,22,10,33],
}
bubblesorter = () => {
let arr = this.state.array
var len = arr.length,
i, j, stop;
for (i=0; i < len; i++){
for (j=0, stop=len-i; j < stop; j++){
if (arr[j] > arr[j+1]){
swap(arr, j, j+1);
}
this.setState({array:arr})
}
}
}
render() {
const array = this.state.array
// console.log(array)
return (
<div>
<h1>This is a sorter</h1>
<div className="container">
{array.map((value, id) => (
<span>
<div className="bar" key={id} style={{height: value+"px"}} >
</div>
</span>
))}
</div>
<button onClick={this.bubblesorter}>Sort</button>
</div>
)
}
虽然我在每次迭代的循环内都使用了 setState,但我只看到最终排序的数组。我想为排序的每个步骤渲染数组(并且可能使用时间延迟)。但我无法实现这一点。
有人可以帮助如何修改此代码以实现这样的功能...谢谢
【问题讨论】:
标签: javascript reactjs