javascript - 未填写数组的特定起始值
问题描述
在我的程序中,我有一个表单,它接受用户输入的两个数字,然后创建一个包含两个数字之间的每个数字的数组。这对大多数值都适用,但某些数字组合根本无法用任何数字填充数组。相关代码如下:
HTML:
<form id="input">
<label for="min">Minimum number:</label>
<input type="text" id="min" name="min" class="field"><br><br>
<label for="max">Maximum number:</label>
<input type="text" id="max" name="max" class="field"><br><br>
</form>
JS:
let min = document.getElementById("min").value;
let max = document.getElementById("max").value;
let range = [];
while(min <= max) {
range.push(min++);
};
这适用于 1-10、1-100 或 10-20 等许多范围,但如果输入 3-10 或 5-10 等范围则失败。到目前为止,通过我的故障排除,我得出的结论是,破坏的不是任何一个最小值或最大值,而是某些任意数字组合。如果这意味着什么,它也是 100% 一致和可复制的。
任何帮助或洞察我做错了什么将不胜感激:)
解决方案
当您从输入中获取值时,它们是字符串。使用 parseInt()
let min = parseInt(document.getElementById("min").value);
let max = parseInt(document.getElementById("max").value);
function myFunction(event){
event.preventDefault();
let min = parseInt(document.getElementById("min").value);
let max = parseInt(document.getElementById("max").value);
let range = [];
while(min <= max) {
range.push(min++);
};
console.log(range)
}
<label for="min">Minimum number:</label>
<input type="text" id="min" name="min" class="field"><br><br>
<label for="max">Maximum number:</label>
<input type="text" id="max" name="max" class="field"><br><br>
<button onclick='myFunction(event)'>push</button>
推荐阅读
- selenium - 如何禁用“始终在相关应用中打开这些类型的链接”Chrome 警报
- emoji - 如何通过 Onesignal 中的 api 发送表情符号
- java - 如何使用 quarkus 创建本机可执行文件?
- javascript - javascript 代码的某些部分使 chrome 在 Ios 中挂起
- c# - 带有 Postgres 的实体框架导致“其他用户正在访问数据库”
- wordpress - 如何使用表格开发一种联系表格,但删除移动设备的表格?
- reactjs - 反应路由器确切路径
- android - 如何在列表视图中获取项目的坐标?
- mysql - 具有 SQL 模式的 MySQL BETWEEN 运算符
- java - 如何理解 AQS 上的“isOnSyncQueue”功能