Javascript 为什么';t此代码将注销相应的结果
我试图在React中实现一个排序可视化工具。我有一个按钮,单击该按钮可调用selectionSort()函数:Javascript 为什么';t此代码将注销相应的结果,javascript,html,reactjs,selection-sort,Javascript,Html,Reactjs,Selection Sort,我试图在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 &l
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);
}
selectionSort(){
var arr=此.state;
控制台日志(arr);
var n=阵列长度;
var i=0;
var j=0;
对于(i=0;iarr[j]){
min=j;
}
}
var-temp=arr[min];
arr[min]=arr[i];
arr[i]=温度;
}
日志(“新阵列”,arr);
}
但是,第二个console.log()应该为排序后的数组赋予正确的属性吗?没有,我也不知道发生了什么事。我看这里没有问题,在我这边工作得很好
函数选择排序(){
var-arr=[1,2,4,5,6,3,10,9];
控制台日志(arr);
var n=阵列长度;
var i=0;
var j=0;
对于(i=0;iarr[j]){
min=j;
}
}
var-temp=arr[min];
arr[min]=arr[i];
arr[i]=温度;
}
日志(“新阵列”,arr);
}
我看这里没有问题,在我这边工作得很好
函数选择排序(){
var-arr=[1,2,4,5,6,3,10,9];
控制台日志(arr);
var n=阵列长度;
var i=0;
var j=0;
对于(i=0;iarr[j]){
min=j;
}
}
var-temp=arr[min];
arr[min]=arr[i];
arr[i]=温度;
}
日志(“新阵列”,arr);
}
您将在google上获得排序逻辑。只需在代码中使用它,这不是问题所在,我只需使用var arr=this.state.array代码>而不是var arr=this.state代码>无论如何,谢谢@vishalpawara您是否试图直接在reactjs中变异这个。状态
?确实不建议这样做,因为此状态是不可变的,请在排序之前尝试复制它。请不要像您那样设置反应状态。您应该始终使用setState
来执行此操作@好武,我不知道。不管怎么说,我只是想试试这个算法是否可行。谢谢你的意见,我会记住的!您将在谷歌上获得排序逻辑。只需在代码中使用它,这不是问题所在,我只需使用var arr=this.state.array代码>而不是var arr=this.state代码>无论如何,谢谢@vishalpawara您是否试图直接在reactjs中变异这个。状态
?确实不建议这样做,因为此状态是不可变的,请在排序之前尝试复制它。请不要像您那样设置反应状态。您应该始终使用setState
来执行此操作@好武,我不知道。不管怎么说,我只是想试试这个算法是否可行。谢谢你的意见,我会记住的!但是这里有一个硬编码数组,OP有一个react状态。如果没有setState
,则不应设置React状态。您是对的,但是他在console.log中的循环之后遇到了获取排序数组的问题。在分配给时,他必须使用this.state.array
arr@KarthikRaj阅读你问题下的评论。这是非常重要的,但是这里有一个硬编码数组,OP有一个react状态。如果没有setState
,则不应设置React状态。您是对的,但是他在console.log中的循环之后遇到了获取排序数组的问题。在分配给时,他必须使用this.state.array
arr@KarthikRaj阅读你问题下的评论。这是非常重要的