zoukankan      html  css  js  c++  java
  • 页面上有3个输入框:分别为max,min,num;三个按钮:分别为生成,排序,去重;

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
        <!-- 创建三个输入框和三个按钮 -->
        <!-- 前面两个输入框进行数字的输入,随机输入的数值,其实没有大小的硬性要求,在下面封装的随机数值中都可以得到想要的数值. -->
        max: <input type="text" name="" id="txt1">   
        min: <input type="text" name="" id="txt2">
        num: <input type="text" name="" id="txt3">
        <input type="button" name="" id="btn1" value="生成">
        <input type="button" name="" id="btn2" value="排序">
        <input type="button" name="" id="btn3" value="去重">
    
        
    </body>
    <script>
    // 页面上有3个输入框:分别为max,min,num;三个按钮:分别为生成,排序,去重;
    // 在输入框输入三个数字后,先点击生成按钮,生成一个数组长度为num,值为max到min之间的随机整数;点击排序,对当前数组进行排序,点击去重,对当前数组进行去重。
    // 每次点击之后使结果显示在控制台
    
        //先对输入框声明变量   
        var oTxt1=document.getElementById("txt1");
        var oTxt2=document.getElementById("txt2"); 
        var oTxt3=document.getElementById("txt3");
        var oBtn1=document.getElementById("btn1");
        var oBtn2=document.getElementById("btn2");
        var oBtn3=document.getElementById("btn3");
        //生成长度为num的数组  
        oBtn1.onclick=function(){
            var oMax=oTxt1.value;   //在这里我们要注意千万不要把这里的变量写在函数的外部,
            var oMin=oTxt2.value;   //那样虽然不会报错但是也显示不出结果
            var oNum=oTxt3.value;
            var arr=new Array(oNum);
        for(var i=0;i<oNum;i++){
            arr[i]=fun(oMax,oMin);
            }console.log(arr);
    
            // 在这边是我们需要封装的函数,封装好的函数可以方便我们以后需要使用的时候可以直接提用
            // 函数的封装就是为了能够选择使用,重复使用,忽略细节,简单一句就是为了方便
            // 范围随机数   
            function fun(max,min){
            return Math.round(Math.random()*(max-min)+min);//在这了其实max和min的顺序调换了也没事
        }
    
             //数组的排序
              //数组的排序最重要的一点就是要遍历,在这里我用到的是数组的冒泡排序,还有很多的方法可以,这就需要我们自己去增加自己的练习了。
        oBtn2.onclick= function(){
            for(var i=0; i<arr.length;i++){        
                for(var j=0; j<arr.length-i;j++){
                    if (arr[j]>arr[j+1]) {
                        var ls=arr[j];
                        arr[j]=arr[j+1];
                        arr[j+1]=ls;
                    }
                }
            }
            console.log(arr);
        }
    
         //去重 
         //这边去重我运用的方法是,在数组的内部提取一个元素然后进行一一比较,如果相同那就删除。不过这边要记住一个遇到的一个BUG,如果遇到两个连续的相同的元素,就可能导致后一位的现铜元素被跳过,所以在这里我们要J--,让循环一次之后将比照的元素在往前进一位,这样子就不会有这个BUG出现了。
        oBtn3.onclick= function (){
            for(var i=0;i<arr.length;i++){
                for(var j=i+1; j<arr.length; j++){
                    if (arr[i]==arr[j]) {
                    arr.splice(j,1);
                    j--;
                    }
                }
    
            }
            console.log(arr);
        } 
        }
    </script>
    </html>
  • 相关阅读:
    LeetCode:Remove Nth Node From End of List
    链表排序(冒泡、选择、插入、快排、归并、希尔、堆排序)
    快速排序partition过程常见的两种写法+快速排序非递归实现
    LeetCode:Permutations, Permutations II(求全排列)
    LeetCode:3Sum, 3Sum Closest, 4Sum
    LeetCode:Two Sum
    判断一个图是否有环
    c++设计一个无法被继承的类
    设计模式--单例模式
    windows多线程同步互斥--总结
  • 原文地址:https://www.cnblogs.com/zhuangch/p/11396257.html
Copyright © 2011-2022 走看看