页面上有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>