js 生成不重复随机点名
时间: 2023-09-05 13:12:54 浏览: 83
可以通过以下代码生成不重复的随机数:
```javascript
let arr = ["张三", "李四", "王五", "赵六", "钱七"];
let usedIndex = [];
for(let i = 0; i < arr.length; i++) {
let randomIndex = Math.floor(Math.random() * arr.length);
while(usedIndex.includes(randomIndex)) { // 如果已经使用过该随机数,则继续生成随机数,直到未使用过为止
randomIndex = Math.floor(Math.random() * arr.length);
}
usedIndex.push(randomIndex);
console.log(arr[randomIndex]); // 输出随机点名结果
}
```
该代码将给定的姓名列表存储在数组 `arr` 中,然后通过循环生成随机数,确保每个姓名只会被随机选中一次。
相关问题
js随机点名,如何实现不重名问题
实现js随机点名并避免重复名字的方法可以是在随机点名之前先对已经被点过的名字进行记录,然后在随机点名的时候先判断该名字是否已经被点过。具体实现可以使用一个数组来存储已经被点过的名字,当进行随机点名时,先生成一个随机的索引值,然后判断这个索引对应的名字是否已经在数组中出现过,如果已经出现过,则重新生成一个随机索引值,直到对应的名字没有重复为止。
另一种方式是在名字列表中将被点过的名字删除,然后再对新的名字列表进行随机点名。随机点名后,将被点中的名字从名字列表中移除,再次点名时就不会出现重名的情况。
除此之外,还可以使用对象的key-value存储方式,将名字作为key,已经被点中的名字对应的value设为true。进行随机点名时,先随机生成一个名字,然后判断这个名字在对象中对应的value是否为true,如果是,则重新生成一个名字,直到找到一个没有被点中过的名字为止。
总之,通过记录被点过的名字并进行判断,可以很好地避免js随机点名出现重名的问题。
生成一个随机点名的代码
好的,为您生成一个随机点名的Python代码:
```python
import random
names = ['Alice', 'Bob', 'Charlie', 'David', 'Emma', 'Frank', 'Grace', 'Harry', 'Isabel', 'Jack']
random.shuffle(names)
print(names[0])
```
这段代码会将一个名字列表随机排序,然后输出排在第一位的名字,即为随机点名结果。希望能满足您的需求,如果您还有什么问题,请随时询问。