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)

阅读更多
个人分类: javascript
上一篇Vue项目关于eslint
下一篇webstorm激活码
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭