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

JavaScript奇偶分类程序问题:两位数显示拆分为两个元素

问题描述

我想写一个JavaScript程序,实现输入10个数字后按偶数、奇数分类展示成列表,但现在有个问题:两位数会被拆成两个元素显示,比如输入10时,页面会分别显示1和0,而不是完整的10。我已经谷歌搜索过,但没找到解决方案。

我的代码

<html>
    <head>
        <script language="Javascript">
          document.write("<h1>Numbers List</h1><ol><li>Evens</li><ul>");
          var i=0,evens=[],odds=[],number;
          while(i<10){
            number=parseInt(prompt())
            if(number%2==0){
              evens+=[number];
            } 
            else{
              odds+=[number];
            }
            i=i+1;
          }
         //Here the numbers are separated between evens and odds 

          i=0;
          while(i<evens.length){
            document.write("<li>"+evens[i]+"</li>");
            i=i+1;
          }
          i=0;
          document.write("</ul><li>Odds</li><ul>")
          while(i<odds.length){
            document.write("<li>"+odds[i]+"</li>");
            i=i+1;
          }
          
          document.write("</ul></ol>The total number of even numbers read has been: "+evens.length+"<br>");
          document.write("The total number of even numbers read has been: "+odds.length);
          
       </script>
    </head>
    <body>
    </body>
</html>

测试输入

1,2,3,4,5,6,7,8,9,10

输出结果

Numbers List
Evens
2
4
6
8
1
0
//The 0 and 1 needed to be a 10
Odds
1
3
5
7
9
The total number of even numbers read has been: 6
The total number of even numbers read has been: 5

解决方案

问题根源在于数组的错误拼接方式:你用evens+=[number]和odds+=[number]的写法,会把数组强制转换成字符串再拼接,而非往数组中添加元素。比如添加10时,原本的[2,4,6,8]会变成字符串"2,4,6,8,10",后续用索引访问时,字符串会被当作字符数组处理,evens[4]取到的是"1",evens[5]取到的是"0",这就导致两位数被拆成单个字符。

只需把数组拼接改成push方法即可修复:

  • 将evens+=[number]替换为evens.push(number)
  • 将odds+=[number]替换为odds.push(number)

修改后的核心代码片段:

while(i<10){
  number=parseInt(prompt())
  if(number%2==0){
    evens.push(number);
  } 
  else{
    odds.push(number);
  }
  i=i+1;
}

另外还有个小错误:最后一行输出的描述写错了,应该是奇数的总数,把The total number of even numbers read has been: "+odds.length改成The total number of odd numbers read has been: "+odds.length。

修改后,输入的10会作为完整数字存入数组,展示时不会被拆分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 10:45:33