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

JavaScript奇偶数字代码执行异常及数组存储实现咨询

问题分析与修复方案

原代码的问题

  1. 第二个循环无法运行的原因:你把num赋值成了空字符串"",在判断循环条件i < num时,空字符串会被隐式转为数字0,0 < 0不成立,循环直接跳过,根本不会执行。
  2. 第一个循环的逻辑隐患:prompt返回的是字符串类型,虽然JS会隐式转换,但容易出问题;而且循环里i始终是0,靠num--控制循环,逻辑混乱,不符合常规写法。

满足需求的修复代码

// 获取输入并转为数字,同时处理非数字输入的情况
let inputNum = parseInt(prompt("请输入一个数字"));
if (isNaN(inputNum)) {
  alert("请输入有效的数字!");
} else {
  // 初始化存储奇偶的数组
  const evenNumbers = [];
  const oddNumbers = [];

  // 遍历1到输入数字的所有整数
  for (let i = 1; i <= inputNum; i++) {
    if (i % 2 === 0) {
      evenNumbers.push(i);
      console.log(`偶数:${i}`);
    } else {
      oddNumbers.push(i);
      console.log(`奇数:${i}`);
    }
  }

  // 打印最终的奇偶数组
  console.log("所有偶数数组:", evenNumbers);
  console.log("所有奇数数组:", oddNumbers);
}

代码说明

  • 先把输入转为整数,用isNaN判断是否为有效数字,避免非数字输入的错误。
  • 用一个循环遍历1到输入数字的所有数,一次判断奇偶,分别存入对应数组,同时输出。
  • 最后打印两个数组,方便查看结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 23:45:37