javascript - 如何将用户输入与数组进行比较

标签 javascript arrays

我想将用户输入与数组进行比较。
示例:如果用户在输入字段中写入 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/

相关文章:

Java:命令行输入的总和给出数组*答案的长度

JavaScript 从文本字段的动态表中将数据读入数组

java - 数组的奇怪输出

javascript - 如果在 jQuery 中放错位置,脚本将无法工作

javascript - 当您将字符串文字传递给变量,然后像这样将该字符串中的数据分配给新变量时,它被称为什么?

javascript - 为什么我的 d3 map 函数返回未定义的源属性?

javascript - 如何在 JavaScript 中对这个对象数组进行分组或合并?

javascript - 使用 Javascript/JQuery 检索 JSON GET 数据

javascript - 如何在单击侧边栏图像时将图像从侧边栏交换到中间 div?

c++ - c++中字符串类型是如何创建的?