我想将用户输入与数组进行比较。
示例:如果用户在输入字段中写入 4,它应该显示 31,因为这是我的数组中第四个元素的值。
我的代码做错了什么?
<!DOCTYPE html>
<html>
<head>
<title>Days in Months</title>
<meta charset="utf-8">
<script type="text/javascript">
window.onload = showDays;
var text = "";
// Days in each month, Jan - Dec
var days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
// Months
var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November",
"December"];
function showDays() {
document.getElementById("btn").onclick = selectMonth;
}
function selectMonth() {
var input = document.getElementById("input").value;
for (var i = 0; i < days.length; i++) {
if (input === days[i]) {
text += days[i];
}
}
document.getElementById("print").innerHTML = text;
}
</script>
</head>
<body>
<h1>Show days in Month</h1>
<input id="input" type="number" placeholder="Month (1-12)">
<button id="btn" type="button">Show Days</button>
<p id="print"></p>
</body>
</html>
最佳答案
您正在进行严格比较===
,因此 1 不等于“1”。将输入转换为数字,例如
var input = Number(document.getElementById("input").value);
另请注意,javascript 数组索引是从 0 开始的,因此当您说用户输入“4”并且您想要数组的“第四个”元素时,您真正想要的是数组索引 3,所以
var input = Number(document.getElementById("input").value)-1;
关于javascript - 如何将用户输入与数组进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46569685/