数组乱序排列详解编程语言
2023-06-13 09:11:48 时间
for (var i = 0; i arr.length; i++) {
var index = Math.floor(Math.random() * arr.length); //随机下标
newArr.push(arr[index]); //将随机出的元素,存放新数组newArr中去
arr.splice(index, 1); // 将随机出的元素在arr中删除
//arr中删除随机出的元素,arr.length-1,同时i++,导致循环不会10次,会是5次.最后得到newArr中只有一半的随机数字,arr中剩下另一半. 将其合并到一起,得到res
var res = [...newArr, ...arr];
console.log(res)
2、法一的修正版
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; var newArr = []; var len = arr.length; for (var i = 0; i len; i++) { var index = Math.floor(Math.random() * arr.length); //随机下标 newArr.push(arr[index]); //将随机出的元素,存放新数组newArr中去 arr.splice(index, 1); // 将随机出的元素在arr中删除 }
var res = [...newArr, ...arr]; console.log(res)
3、数组排序
function randomSort(arr) { return arr.sort((a, b) = { return Math.random() 0.5 ? 1 : -1; }
4、洗牌原理:从数组的最后位置开始,然后从前面随机一个位置,对这两个数进行交换!直到循环完毕
function shuffleSort(arr) { let len = arr.length; let i = len - 1; while (i = 0) { let index = Math.floor(Math.random() * i); let temp = arr[i]; arr[i] = arr[index]; arr[index] = temp; i--; return arr; }
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/18091.html
cjava相关文章
- Linux文件之strstr函数、将一个整数,结构体和结构体数组写进文件里
- js数组删除,新增,元素删除,事件绑定详解编程语言
- Java 将字节数组转成十六进制字符串详解编程语言
- java基础学习总结——数组详解编程语言
- Python二维数组构造详解编程语言
- Java数据结构和算法(二)——数组详解编程语言
- Java中对Array数组的常用操作详解编程语言
- java数组转换为List注意地方详解编程语言
- 在数组中找到与给定总和的配对详解编程语言
- 算法-构建乘积数组详解编程语言
- 算法-数组中重复的数字详解编程语言
- 算法-调整数组顺序使奇数位于偶数前面详解编程语言
- Javascript中的Array(数组) 、{}(映射) 与JSON解析详解编程语言
- 删除排序数组中的重复项算法详解编程语言
- 增强for循环对于“二维”数组进行循环的案例详解编程语言
- php 数组索引值重新从0开始递增方法详解编程语言
- php 二维数组自定义排序详解编程语言
- jquery中push()的用法(数组添加元素)