首页 > 解决方案 > 未填写数组的特定起始值

问题描述

在我的程序中,我有一个表单,它接受用户输入的两个数字,然后创建一个包含两个数字之间的每个数字的数组。这对大多数值都适用,但某些数字组合根本无法用任何数字填充数组。相关代码如下:

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% 一致和可复制的。

任何帮助或洞察我做错了什么将不胜感激:)

标签: javascripthtml

解决方案


当您从输入中获取值时,它们是字符串。使用 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>


推荐阅读