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

如何修复读取数字至0并找出最大最小值的JavaScript脚本?

修复连续输入数字并求最值的JavaScript脚本

原需求:连续读取数值直到输入0为止,找出输入数字中的最大值与最小值。原脚本存在多处问题,下面是修复方案:

原脚本的问题点

  • prompt弹窗里的字符串直接换行,JavaScript语法不允许,会直接报错
  • 输入的0会被存入数组,可能干扰最值计算
  • 完全缺失最小值的计算逻辑
  • for循环遍历范围错误,没覆盖所有有效数字
  • document.write()没有传入任何内容,无法输出结果
  • 未处理用户输入非数字的情况,比如输入字母会得到NaN,影响后续计算

修复后的完整代码

<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Znajdź max i min</title>
</head>
<body>
    <script>
        let tab = [], input, max, min;
        
        // 循环读取输入,直到输入0
        do {
            input = parseInt(prompt("Podaj jakąś wartość. Zero kończy wprowadzanie danych:"));
            // 只把有效数字(非NaN、非0)加入数组
            if (!isNaN(input) && input !== 0) {
                tab.push(input);
            }
        } while (input !== 0);

        // 检查是否有有效输入
        if (tab.length === 0) {
            document.write("Nie podano żadnych wartości poza zerem!");
        } else {
            // 初始化max和min为第一个有效数字
            max = tab[0];
            min = tab[0];
            
            // 遍历数组找最值
            for (let num of tab) {
                if (num > max) max = num;
                if (num < min) min = num;
            }
            
            // 输出结果
            document.write(`Największa wartość: ${max}<br>Najmniejsza wartość: ${min}`);
        }
    </script>
</body>
</html>

关键修复说明

  • 修正prompt字符串的换行问题,保持语法合规
  • 新增输入验证:用isNaN()判断输入是否为有效数字,同时排除0,只把有效数值加入数组
  • 用for...of循环遍历数组,同时补充最小值的判断逻辑
  • 增加无有效输入的判断,避免数组为空时出现错误
  • 完善document.write()的内容,清晰输出最大值和最小值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 16:40:22