要求:对一个数组实现随机排列。特殊的业务场景可能会用到。我这里贴出我想到的一个实现方法,并欢迎大家集思广益。
//定义原数组、返回的新数组、变量selectItem(存放每次从oldArray中取出的值)
let [oldArray, newArray, selectItem] = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [], null]
let len = oldArray.length
while(newArray.length < len){
//随机生成一个0~9之间的数字并从oldArray中取值
selectItem = oldArray[Math.floor(Math.random() * 10)]
//判断新数组中是否存在此次取出的值,若存在说明不可用进入下次循环,若不存在则存入新数组
if(newArray.indexOf(selectItem) < 0){
newArray.push(selectItem)
}
}
//新数组
console.log(newArray)