所以我创建了一个输入框来为数组添加一个值,但是当它对数组进行排序时,它只对输入框中的值进行排序,而不是对整个数组进行排序。我搞砸了但似乎没什么用。
<script>
var Arrays = ["Printer", "Tablet", "Router", "Smart phone", "Motherboard", "Hard drive"];
document.getElementById("beef").innerHTML = Arrays;
function displayMessage() {
var userInput = document.hey.firstname.value;
document.getElementById("pie").innerHTML = "The user entered: " + userInput + "<br>";
Arrays.push(userInput);
document.getElementById("pie").innerHTML = Arrays;
}
function count() {
document.getElementById("counting").innerHTML =
Arrays.length;
}
function sort() {
document.getElementById("pie").innerHTML = Arrays;
Arrays.sort();
}
</script>
<body>
<br>
<form name="hey">
Enter value:
<br>
<input type="" name="firstname" value="">
<br>
<button type="button" onclick="displayMessage()">Add to list</button>
</form>
<p id="pie"></p>
<br>
<p id="beef"></p>
<br>
<button type="button" onclick="count();sort();">Click to count and sort</button>
<br>
<p id="counting"></p>
<br>
<p id="sorting"></p>
<br>
</body>
</html>
答案 0 :(得分:1)
我真的没有得到什么,但是,我发现了一个问题,并在下面列出。
您需要更新sort
功能,以便先排序,然后在html中设置值。
function sort() {
Arrays.sort(); // need to sort first
document.getElementById("pie").innerHTML = Arrays;
}
答案 1 :(得分:1)
这里有多个问题。首先,正如其他评论所说,您需要在编写结果之前进行排序。第二件事是,您可能输入小写字母作为用户输入,但javascript数组排序区分大小写,以大写字母开头的单词在小字母单词之前排序。如果您愿意忽略套管,则需要向sort函数添加自定义功能。您可以尝试使用以下命令替换sort函数:
function sort() {
Arrays.sort(function(a, b) {
if (a.toLowerCase() < b.toLowerCase())
return -1;
if (a.toLowerCase() > b.toLowerCase())
return 1;
return 0;
});
document.getElementById('beef').innerHTML = Arrays;
}
在旁注中,您正在覆盖The user entered..
方法中的displayMessage
句子。您可能希望在pie
更改beef
。
可以在sort方法中应用相同的内容。最后,代码应如下所示:
var Arrays = ['Printer', 'Tablet', 'Router', 'Smart phone', 'Motherboard', 'Hard drive'];
document.getElementById("beef").innerHTML = Arrays;
function displayMessage() {
var userInput = document.hey.firstname.value;
document.getElementById('pie').innerHTML = "The user entered: " + userInput + "<br>";
Arrays.push(userInput);
document.getElementById('beef').innerHTML = Arrays;
}
function count() {
document.getElementById('counting').innerHTML = Arrays.length;
}
function sort() {
Arrays.sort(function(a, b) {
if (a.toLowerCase() < b.toLowerCase())
return -1;
if (a.toLowerCase() > b.toLowerCase())
return 1;
return 0;
});
document.getElementById('beef').innerHTML = Arrays;
}
<br>
<form name="hey">
Enter value:<br>
<input type="" name="firstname" value=""><br>
<button type="button" onclick="displayMessage();">Add to list</button>
</form>
<p id="pie"></p>
<br>
<p id="beef"></p>
<br>
<button type="button" onclick="count();sort();">Click to count and sort</button>
<br>
<p id="counting"></p>
<br>
<p id="sorting"></p>
<br>