排序数组 (Javascript)
Sorting Arrays (Javascript)
我正在尝试构建使用 select离子排序方法 的代码,但我遇到了麻烦。当我按下我的按钮时,什么也没有发生。我认为再多看一眼代码会帮助我找出问题所在。
我的 swap() 函数是否正确?我的 select() 函数是否正确?我究竟做错了什么?欢迎所有帮助!
<input id="input1" type="number" min="5" max="1000" onchange="first(); sortButton();">
<p id="demo"></p>
<!-- button appears here, once a value is entered into the input field -->
<p id="buttons1" onclick="select();"></p>
<p id="demo2"></p>
<script>
// once input1 value changes this outputs a random value less than N (value of input1) N times, then dumps out the random numbers in id="demo"
var arr = [];
function first() {
var N = document.getElementById("input1").value;
while(arr.length < N)
{var randomnumber = Math.ceil(Math.random()*N);
arr[arr.length] = randomnumber;}
document.getElementById("demo").innerHTML = arr;}
// Once input1 value changes, this buttons appears in id="buttons"
function sortButton() {document.getElementById("buttons1").innerHTML =
'<button type="button" onclick="select();">Select Sort</button>';}
function swap(arr, i, min) {
var temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;}
// meant to sort (selection sort method) the random numbers in id="demo" once the button is clicked
function select() {var len = arr.length, min, i, j;
for (i = 0; i < len; i++){min = i; for (j = i+1; j < len; j++){if (arr[j] < arr[min]){min = j;}} if (i != min){swap(arr, i, min);} } return arr;}
</script>
您的 select 函数一团糟。有一个名为 sort 的标准函数,可以为您完成:
function select(){
arr.sort(function(a,b){
//if a<b keep it, if not swap
if(a<b){
return 0;
}else{
return 1;
}
});
https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
你甚至可以做空它:
function select(){
arr.sort((a,b)=>a-b);
}
(有关更多信息,请参阅箭头函数)
我正在尝试构建使用 select离子排序方法 的代码,但我遇到了麻烦。当我按下我的按钮时,什么也没有发生。我认为再多看一眼代码会帮助我找出问题所在。
我的 swap() 函数是否正确?我的 select() 函数是否正确?我究竟做错了什么?欢迎所有帮助!
<input id="input1" type="number" min="5" max="1000" onchange="first(); sortButton();">
<p id="demo"></p>
<!-- button appears here, once a value is entered into the input field -->
<p id="buttons1" onclick="select();"></p>
<p id="demo2"></p>
<script>
// once input1 value changes this outputs a random value less than N (value of input1) N times, then dumps out the random numbers in id="demo"
var arr = [];
function first() {
var N = document.getElementById("input1").value;
while(arr.length < N)
{var randomnumber = Math.ceil(Math.random()*N);
arr[arr.length] = randomnumber;}
document.getElementById("demo").innerHTML = arr;}
// Once input1 value changes, this buttons appears in id="buttons"
function sortButton() {document.getElementById("buttons1").innerHTML =
'<button type="button" onclick="select();">Select Sort</button>';}
function swap(arr, i, min) {
var temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;}
// meant to sort (selection sort method) the random numbers in id="demo" once the button is clicked
function select() {var len = arr.length, min, i, j;
for (i = 0; i < len; i++){min = i; for (j = i+1; j < len; j++){if (arr[j] < arr[min]){min = j;}} if (i != min){swap(arr, i, min);} } return arr;}
</script>
您的 select 函数一团糟。有一个名为 sort 的标准函数,可以为您完成:
function select(){
arr.sort(function(a,b){
//if a<b keep it, if not swap
if(a<b){
return 0;
}else{
return 1;
}
});
https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
你甚至可以做空它:
function select(){
arr.sort((a,b)=>a-b);
}
(有关更多信息,请参阅箭头函数)