具有用户输入的数组上的 NaN

NaN on array with user inputs

本文关键字:数组 NaN 输入 用户      更新时间:2023-09-26

问候 我是第一个月Java脚本学生,在创建工作数组时遇到问题。我正在尝试从用户那里获取输入,使用 parsefloat 将其从字符串更改为整数,通过函数传递它以查找中间值或中间值的平均值,但它一直以 NaN 的形式出现,尝试了各种不同的方法来检查值,但它仍然拒绝接受它们作为整数, 这就是现在的代码。再次感谢。

<!DOCTYPE html>
<html>
    <head>
    <meta charset="utf-8">
    <title> middle index </title>
        <script>
         function middleIndex() { 
            var index = [];
            index = [
                  parseFloat(document.getElementById('input1').value),
                  parseFloat(document.getElementById('input2').value),
                  parseFloat(document.getElementById('input3').value),
                  parseFloat(document.getElementById('input4').value),
                  parseFloat(document.getElementById('input5').value)
            ];
            var midindex = getMiddle(index);
            document.getElementById('output').value = midindex;
        };
        function getMiddle(list) {
           var s = list.map(function(v) {
               return v.values;}).sort(function(a, b) {return a - b});
           var middle = Math.floor((s.lenth - 1) / 2);
           if (s.lenth % 2) {
               return s[middle];
           } else {
               return (s[middle] + s[middle +1]) / 2.0;
           }
        };
</script>
    </head>
    <body>
    <h2>Finding the middle value</h2>
    <br>
    <input type="text" id="input1">
    <br>
    <input type="text" id="input2">
    <br>
    <input type="text" id="input3">
    <br>
    <input type="text" id="input4">
    <br>
    <input type="text" id="input5">
    <br>
    <button onclick="middleIndex()">Middle</button>
    <br>
    <input type="text" id="output">
    </body>
</html>
  1. 您在单词长度上有语法错误,在两种情况下都不应该是 lenth,而是长度。
  2. 返回 v.values - 删除值
  3. 如果你想要的只是排序,那么你只能使用 javascript var s = list.sort() 的排序函数;

所有代码完成:

function getMiddle(list) {               
    var s = list.sort();
    var middle = Math.floor((s.length - 1) / 2);
    if (s.length % 2 == 0) {
         return s[middle];
    } else {
         return (s[middle] + s[middle + 1]) / 2.0;
    }
}

请验证此答案。我认为这可能会有所帮助。

function middleIndex() { 
    var index = [];
    var inputTags = document.getElementsByTagName('INPUT');
    for(var i=1;i<inputTags.length+1;i++) {
        var x = 'input' + i;
        index.push(parseFloat(document.getElementById(x).value));
    }
}

所以在这里我把所有值都推到索引数组中。使用 return v 而不是使用 return v.values 。并且还使用lengthlenth.