You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript数组计算min、max值结果不符合预期问题求助

错误根因
  • 输入值的类型错误:你从文本输入框获取的value默认是字符串类型,直接存入数组后,findMax、findMin里的大小比较是按照字典序执行,而非数值大小比较。
    举个例子:你存入的"5"和"30"做比较时,会先对比两个字符串的第一个字符,"5"的Unicode编码大于"3",所以会判定"5" > "30",最终得到完全颠倒的计算结果。
修复方案

修改addNum函数的取值逻辑,把输入值转为数值类型后再存入数组即可,修改后的代码如下:

function addNum() { 
    // 把输入值转为Number类型
    var num = Number(document.getElementById("input").value);
    // 可选:增加非法输入校验,避免非数值存入数组
    if (isNaN(num)) {
        alert("请输入合法数字");
        document.getElementById("input").value = null;
        return;
    }
    array.push(num);
    document.getElementById("input").value = null;
    document.getElementById("confirmation").innerHTML = "Num " + num + " has been entered.";
    document.getElementById("array").innerHTML = "array: " + array;
}

如果你不需要自己实现遍历逻辑,也可以直接调用JS内置的API简化计算:

  • 求数组最大值:const max = Math.max(...array)
  • 求数组最小值:const min = Math.min(...array)
额外注意事项
  • 你的HTML代码里存在两个id="array"的元素,id是唯一标识,重复id会导致DOM选择异常,建议删掉其中一个重复的id避免其他功能出错。

内容的提问来源于stack exchange,提问作者mauri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 00:15:06