Javascript 如何使用切换按钮将数组从降序切换到升序?
我使用的是bubbleSort,我可以让数组从原来的顺序切换到降序,但是我很难让它从降序返回升序。我是否应该复制bubbleSort代码并翻转大于/小于符号?感谢您的帮助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'
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;