嗨,我希望有人能帮助我。我有5个输入框,我从这些框中获取值并将它们放入JavaScript中的数组中,然后按字母顺序对这些值进行排序,这非常完美。问题是,由于某些原因,当这些值被放入数组中时,它将它们加倍,并且它给出两次值。任何帮助,将不胜感激。谢谢。Javascript Array值出现两次
<form>
*Choice A
<input type="text" maxlength="100" name="cha" class="answer" rows="1" cols="10">
*Choice B
<input type="text" maxlength="100" name="chb" class="answer" rows="1" cols="10">
*Choice C
<input type="text" maxlength="100" name="chc" class="answer" rows="1" cols="10" >
*Choice D
<input type="text" maxlength="100" name="chd" class="answer" rows="1" cols="10" >
*Choice E
<input type="text" maxlength="100" name="che" class="answer" rows="1" cols="10" >
<input type = "button" id="myBtn" onclick="myFunction()" value ="Selection Sort in Ascending Order">
<br/>
<div id="showInputValues">
</div>
</form>
这里是JavaScript:
<script language="javascript">
var getBtn = document.getElementById('myBtn');
getBtn.onclick = function() {
getTheData() ;
}
function getTheData() {
var answer = document.getElementsByClassName("answer");
var inputValues = new Array();
for (var i in answer) {
//extract the value of input elements
var singleVal = answer[i].value;
if (singleVal !== "" && singleVal !== undefined) {
inputValues.push(singleVal);
}
}
console.log(inputValues);
inputValues.sort();
//Display sorted values on form
console.log(inputValues);
alert(inputValues);
// set the sorted values :
for (var i=0;i<inputValues.length;i++) {
//extract the value of input elements
console.log(i);
console.log(inputValues[i]);
answer[i].value = inputValues[i];
}
}
</script>
请以一致的方式格式化您的代码。当代码格式不正确时,更难理解,调试和检查语法错误。如果格式正确,人们也会对你的问题做出更积极的回应。像[JSBeautifier](http://jsbeautifier.org/)这样的工具可以帮助您正确地设置代码的格式。 –
预期的行为是用户将在输入字段中输入5个选项,然后一旦单击该按钮,这些值将被放置到数组中并按字母顺序排序,然后新的排序值将出现在输入字段中。例如,如果我输入Apple,Bananna,Orange,Pear,Zebra。排序后的值将是Apple,Apple,Bananna,Bananna,Orange,Orange,Pear,Pear,Zebra,Zebra。 – user3260744
我不问任何人为我写代码。我只是问有人可以解释为什么价值翻倍。谢谢你的粗鲁 – user3260744