Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么';t此代码将注销相应的结果_Javascript_Html_Reactjs_Selection Sort - Fatal编程技术网

Javascript 为什么';t此代码将注销相应的结果

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

我试图在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);
  }
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阅读你问题下的评论。这是非常重要的