javascript - 如何生成随机数,然后排除数字数组
问题描述
我想生成 1-50 的随机数,然后排除一个像这样的数组;4,7,10,20,35 等
我试过这个;
let mainNum = 50
let exclNum = [4, 7, 10, 20, 35];
if (!exclNum.includes(mainNum)) {
console.log(Math.floor(Math.random() * mainNum) + 1)
}
但它仍然会生成仍在数组中的数字,请问我有什么遗漏吗?
感谢您提前回复
解决方案
您需要先生成随机数,然后检查它是否在数组中。在循环中执行此操作,直到它不在数组中。
let mainNum = 50
let exclNum = [4, 7, 10, 20, 35];
let ranNum;
while (true) {
ranNum = Math.floor(Math.random() * mainNum) + 1;
if (!exclNum.includes(ranNum)) {
break;
}
}
console.log(ranNum);
推荐阅读
- java - 网页中的图像映射
- javascript - 创建带有浮动侧边栏的目录
- rest - 当在 URL 和正文中使用 id 进行 PUT 时,哪一个获胜?
- javascript - 跟踪 DOM 中的更改触发缓慢
- python - 检测不直的线(垂直和水平)并通过它对齐图像?
- asp.net-mvc - Twilio 有时对 SMS 或电话资源请求的响应速度过快
- python - Seaborn 线图:在 X 轴的开头和结尾显示额外的 1 小时(xlim 问题)
- kubernetes - Kubernetes runAsUser 创建主目录
- android - SwipeRefreshLayout 与 NestedScrollView 不滚动
- java - 如何在不删除父级的情况下删除多对一关系的子级?