1.抽牌算法
- 随机从原数组抽取一个数到新数组中,原数组则删除抽中的数。
function shufflePick(data){
let list = []
while(data.length>0){
let index = Math.floor(Math.random()*data.length)
let ans = data.splice(index,1)
list.push(...ans)
}
return list
}
2.洗牌算法
- 将第i张与随机位置进行交换,换完一轮即可。
function shuffleWrap(data){
let list = [].concat(data)
for(let i = 0; i < list.length; i++){
let index = Math.floor(Math.random()*data.length)
console.log(list[index]);
[list[i],list[index]] = [list[index],list[i]]
}
return list
}