Javascript 如何使用切换按钮将数组从降序切换到升序?

Javascript 如何使用切换按钮将数组从降序切换到升序?,javascript,html,arrays,sorting,Javascript,Html,Arrays,Sorting,我使用的是bubbleSort,我可以让数组从原来的顺序切换到降序,但是我很难让它从降序返回升序。我是否应该复制bubbleSort代码并翻转大于/小于符号?感谢您的帮助 var myStuff = []; function myfunctionA() { var enteredvalue = document.getElementById("numbers").value; // alert(typeof Number(document.getElementById('numbers'

我使用的是bubbleSort,我可以让数组从原来的顺序切换到降序,但是我很难让它从降序返回升序。我是否应该复制bubbleSort代码并翻转大于/小于符号?感谢您的帮助

var myStuff = [];
function myfunctionA() {
  var enteredvalue = document.getElementById("numbers").value;
  // alert(typeof Number(document.getElementById('numbers').value));
  if (enteredvalue == "") {
    alert("Input is not a number");
  } else if (isNaN(enteredvalue)) {
    alert('You need to enter a valid number!');
  }
  var elementExists = false;
  var x = document.getElementById('numbers').value;
  for (var i = 0; i < myStuff.length; i++) {
    if (myStuff[i] == Number(x)) {
      elementExists = true;
    }
  }
  if(elementExists != true) {
    myStuff.push(Number(enteredvalue));
    alert('Thank You for entering a valid number.');
  } else {
    alert('Element is here');
  }
}
function myfunctionB() {
  window.alert(myStuff.length);
}
function myfunctionC() {
  var sum = 0;
  for(var i = 0; i < myStuff.length; i++) {
    sum+=myStuff[i];
  }
  alert(sum);
}
function myfunctionD() {
  if (myStuff.length == 0) {
    alert("already empty");
  } else {
    myStuff = [];
  }
  alert("Array Empty");
}
function myfunctionE() {
  alert(myStuff.join('\n'));
  {
    if (myStuff == []) {
      alert("Enter something into Array")
    }
  }
}

function bubbleSort() {
  var sorted = true;
  var temp;
  while(sorted) {
    sorted = false;
    for(var i = 0; i < myStuff.length-1; i++) {
      if(myStuff[i] < myStuff[i+1]) {
        temp = myStuff[i];
        myStuff[i] = myStuff[i+1];
        myStuff[i+1] = temp;
        sorted = true;
      }
    }
  }
}
var myStuff=[];
函数myfunctionA(){
var enteredvalue=document.getElementById(“数字”).value;
//警报(编号类型(document.getElementById('numbers').value));
如果(输入值==“”){
警报(“输入不是数字”);
}否则如果(isNaN(输入值)){
警报('您需要输入一个有效的数字!');
}
var elementExists=false;
var x=document.getElementById('numbers')。值;
对于(var i=0;i
首先,您需要一个开关来告诉您要走哪条路

var isAscending = false;
然后在for语句内的bubbleSort函数中,在if语句上方

var sortComparison;
if (isAscending) sortComparison = myStuff[i] > myStuff[i];
if (!isAscending) sortComparison = myStuff[i] < myStuff[i];
最后,完成排序后,可以切换变量:

isAscending = !isAscending;
不过,我建议使用一个切换变量,只需使用sort()和reverse()即可


你能不能先使用
[…].sort()
[…].sort()
然后再使用@LiYinKongI建议的
[…].reverse()
,告诉你不要使用.sort或.reverse来完成此任务@Sarbbottam然而,如果我要使用.reverse,我将在哪里将该代码输入到我现有的代码中?这是否意味着您正试图实现
asc
&
desc
排序功能?因此,不要使用:var sorted=true;无功温度;while(已排序){sorted=false;我应该将其替换为:var isAscending=false;?不,isAscending变量位于函数外部。如果您将sorted或isAscending保留在函数内部,则函数调用结束后,该变量将被重置。那么它应该看起来像这样吗?有趣Action bubbleSort(){var sorted=true;var temp;while(sorted){sorted=false;var sortComparison;if(isAscending)sortComparison=myStuff[i]>myStuff[i];if(!isAscending)sortComparison=myStuff[i]isAscending = !isAscending;