数组的 随机生成,排序,去重"/>
数组的 随机生成,排序,去重
数组的生成、排序、去重
页面上有3个输入框:分别为max,min,num; 三个按钮:分别为生成,排序,去重; 在输入框输入三个数字后,先点击生成按钮,生成一个数组长度为num,值为max到min之间的随机整数;点击排序,对当前数组进行排序,点击去重,对当前数组进行去重。每次点击之后使结果显示在控制台
<body>max:<input type="text" id="max" value=""> <!-- 输入最大值 -->min:<input type="text" id="min" value=""> <!-- 输入最小值 -->num:<input type="text" id="num" value=""><br/> <!-- 输入想要的数组长度 --><input type="button" id="btn1" value="生成"><input type="button" id="btn2" value="排序"><input type="button" id="btn3" value="去重">
</body>
<script>//获取所有表单节点var omax = document.getElementById("max");var omin = document.getElementById("min");var onum = document.getElementById("num");var obtn1 = document.getElementById("btn1");var obtn2 = document.getElementById("btn2");var obtn3 = document.getElementById("btn3");onum.onblur = function(){ // 当 num输入框 获取焦点时var a = parseInt(omax.value); // 取最大值的数值 赋给 avar b = parseInt(omin.value); // 取最小值的数值 赋给 bvar c = parseInt(onum.value); // 取填入的数组长度的数值 赋给 cfunction random(a,b){ // 最小值到最大值之间 取随机数 return Math.round(Math.random()*(a-b)+b)}function getArr(a,b){ var arr = []; // 创建一个空数组 用以存放随机出来的数值for(var i = 0 ; i < c; i++){ arr.push(random(a,b)); // 将随机出的数后增给数组 arr}return arr; // 返回 arr}function noRepeat(nArr){var xArr = []; // 创建一个空数组 用以存放 去重后的数值var myset = new Set(nArr); // 利用了Set结构不能接收重复数据的特点for(var val of myset){xArr.push(val)}return xArr;}obtn1.onclick = function(){ // 点击 生成 按钮时var newArr = getArr(a,b); console.log(newArr);obtn2.onclick = function(){ // 点击排序按钮时//console.log(newArr);for(var i = 0; i < c - 1; i++){for(var j = 0; j < c - 1 - i ; j++){if(newArr[j] > newArr[j+1]){ // 判断 第 j 项 是否大于 j+1 项var ls = newArr[j] // 大于的话 赋值给 lsnewArr[j] = newArr[j+1] // 并将 j+1项的值赋给 j项newArr[j+1] = ls; //最后再把 ls 赋给 j+1项 这就使 j 项的值于 j+1项的值对调}}}console.log(newArr);obtn3.onclick = function(){ // 点击 去重按钮时//console.log(newArr);var xinArr = noRepeat(newArr);console.log(xinArr);}}}}</script>
显示如下
更多推荐
数组的 随机生成,排序,去重
发布评论