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

JavaScript接收prompt输入存入数组并计算排除-1的数值平均值

问题排查
  • 数组初始化时机错误:你在循环结束后才创建numbersArray,仅保存了终止标记-1,循环过程中用户输入的所有数字都没有被存储,直接丢失。
  • 缺少类型转换:prompt返回值为字符串格式,后续做数值计算需要先转成数字类型才能正确运算。
  • 未排除终止标记:现有逻辑会把停止输入的标记-1也纳入计算范围,不符合需求要求。
修正后代码
// 初始化存储有效数字的空数组
const numbersArray = [];
let userInput = prompt("请输入数字,输入-1时停止输入");

while (userInput !== "-1") {
    const inputNum = Number(userInput);
    // 仅存入有效数字,过滤非数字输入
    if (!isNaN(inputNum)) {
        numbersArray.push(inputNum);
    } else {
        alert("请输入合法数字");
    }
    // 触发下一次输入
    userInput = prompt("请输入数字,输入-1时停止输入");
}

// 计算平均值
if (numbersArray.length) {
    const total = numbersArray.reduce((prev, curr) => prev + curr, 0);
    const average = total / numbersArray.length;
    console.log("已输入有效数字:", numbersArray);
    console.log("平均值为:", average);
    // 如需保留小数可改用 average.toFixed(2) 保留2位小数
} else {
    console.log("未输入任何有效数字,无法计算平均值");
}
逻辑说明
  • 循环开始前就初始化空数组,每次用户输入有效数字后就存入数组,避免数据丢失
  • 每次输入首先判断是否为终止标记-1,非标记值才做后续处理,自动排除终止标记
  • 新增非数字输入容错逻辑,避免无效值干扰计算结果
  • 增加空数组判断,避免未输入任何数字时出现除以0的报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:12:02