JS实现数组的随机重排

 
 

要求:对一个数组实现随机排列。特殊的业务场景可能会用到。我这里贴出我想到的一个实现方法,并欢迎大家集思广益。

//定义原数组、返回的新数组、变量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)

猜你喜欢

转载自blog.csdn.net/for_weber/article/details/80340630