zl程序教程

您现在的位置是:首页 >  后端

当前栏目

数组乱序排列详解编程语言

数组编程语言 详解 排列 乱序
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