唇劫. 2022-02-25 15:41 采纳率: 73.7%
浏览 63
已结题

javascript 循环练习题

用户输入15个数,分别将接收到数字依次存入数组中。[只能输入个位数 0-9]输入结束后,页面显示如下结果:
0出现了.多少次
1出现了多少次
等等
9出现了多少次

  • 写回答

1条回答 默认 最新

  • 崽崽的谷雨 2022-02-25 16:04
    关注

    function getCount(arr, rank,ranktype){ 
        var obj = {}, k, arr1 = [];
        for (var i = 0, len = arr.length; i < len; i++) {
            k = arr[i];
            if (obj[k]) 
                obj[k]++;
            else 
                obj[k] = 1;
        }
        //保存结果{el-'元素',count-出现次数}
        for (var o in obj) {
            arr1.push({el: o, count: obj[o]});
        }
        //排序(降序)
        arr1.sort(function (n1, n2) {
            return n2.count - n1.count
        });
        //如果ranktype为1,则为升序,反转数组
        if(ranktype===1){
            arr1=arr1.reverse();
        }
        var rank1 = rank || arr1.length;
        return arr1.slice(0,rank1);
    }
    
    let v=getCount([1,2,3,1,2,5,2,4,1,2,6,2,1,3,2])//默认情况,返回所有元素出现的次数
    console.log(v)
    
    
    
    <!DOCTYPE html>
    <html lang="en">
    
    <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>Document</title>
        <style>
    
        </style>
    </head>
    
    <body>
      <input type="number" id="num">
      <button onclick="addNum()">
        添加
     </button>
     <div id="count"></div>
     <div id="text"></div>
    </body>
    <script>
        function getCount(arr, rank, ranktype) {
            var obj = {}, k, arr1 = [];
            for (var i = 0, len = arr.length; i < len; i++) {
                k = arr[i];
                if (obj[k])
                    obj[k]++;
                else
                    obj[k] = 1;
            }
            //保存结果{el-'元素',count-出现次数}
            for (var o in obj) {
                arr1.push({ el: o, count: obj[o] });
            }
            //排序(降序)
            arr1.sort(function (n1, n2) {
                return n2.count - n1.count
            });
            //如果ranktype为1,则为升序,反转数组
            if (ranktype === 1) {
                arr1 = arr1.reverse();
            }
            var rank1 = rank || arr1.length;
            return arr1.slice(0, rank1);
        }
    
      
    
        let arr=[];
        function addNum(){
              let num=document.getElementById("num");
               if(num.value>10){
                   alert("只能输入0-10")
                   return
               }else{
                   arr.push(num.value);
                   if(arr.length>15){
                       alert("只能输入15个数字")
                       return
                   }
                   let count=document.getElementById("count");
                   count.innerText=`已加入${arr.length}个`;
                   let text=document.getElementById("text");
                   text.innerText=arr;
                   let v = getCount(arr);//默认情况,返回所有元素出现的次数
                   console.log(v,"88")
                   num.value=null;
               }
        }
    </script>
    
    </html>
    

    可以参照这个 。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月25日
  • 已采纳回答 2月25日
  • 创建了问题 2月25日

悬赏问题

  • ¥100 如何用js写一个游戏云存档
  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥30 C++行情软件的tick数据如何高效的合成K线