我正在尝试根据用户输入的升序或降序对数字进行排序。我将文本字段中的数字排序到一个数组中,并使用if-else语句根据select标记的值以升序或降序排序。但是,代码在被告知时仅按升序排序,而不按降序排序。我只是想知道如何解决此问题。
这是我第一次使用HTML和Javascript进行编码,更不用说编码了,因此此代码可能效率很低,但是我愿意接受任何技巧。
function sortingFunction() {
var arr = [];
arr.push(document.getElementById("one").value);
arr.push(document.getElementById("two").value);
arr.push(document.getElementById("three").value);
arr.push(document.getElementById("four").value);
arr.push(document.getElementById("five").value);
arr.push(document.getElementById("six").value);
arr.push(document.getElementById("seven").value);
arr.push(document.getElementById("eight").value);
arr.push(document.getElementById("nine").value);
arr.push(document.getElementById("ten").value);
var filtered = arr.filter(Boolean);
var x = document.getElementById("mySelect").value;
if (x = "ascending") {
document.getElementById("answer").innerHTML = "Answer: " + filtered.sort(function(a,b) { return a - b;});
} else {
document.getElementById("answer").innerHTML = "Answer: " + filtered.sort(function(a,b) { return b - a;});
}
}
//Text Fields Here with id="one" to "ten"
<button onclick="sortingFunction()">Submit</button>
<select name="test" id="mySelect">
<option value="ascending">Ascending Order</option>
<option value="descending">Descending Order</option>
</select>
<p id="answer"></p>
答案 0 :(得分:-1)
将if (x = "ascending")
更改为if (x == "ascending")