我们可以考虑偌随机出来的不是直接是1-100的数,而是数组的下标是否可以实现随机数不重复。 例如: int array[100],a[0] 到a[99]分别是1-100 random(0,99),得到一个随机数x,打印出a[x],然后将a[x]与a[99]交换 下次随机函数random(0,98),这样无论这次随机值是多少,a[x]都不在可得值的范围内了,如此循环100次即可
let arr=new Array(100).fill(0)
let i=1
arr=arr.map(()=>{
return i++
})//创建1-100的数组
let max=100;//随机数下标最大值(取不到)
for(let k=0;k<100;k++){
let rand=~~(Math.random()*max) //~~向下取整,产生数组下标[0,max-1)
console.log(arr[rand])
;[arr[rand],arr[arr.length-1-k]]=[arr[arr.length-1-k],arr[rand]] //交换当前下标和最大值下标
max--
}
console.log(arr)