Javascript随机数没有重复,不在特定列表中
Javascript random numbers no duplicates not in specific list
我正试图用Javascript获得一个0-30之间的10个随机数的列表
到目前为止还不错,但我有另一个特定数字的列表(0,5,10,11,12,13,15,16,17,18,20,22,23)
随机数组中最多只允许使用此列表中的4个数字。这让我疯了,因为我不知道要把它结合起来。
我很感激你的帮助。非常感谢。
这是我的代码:
<script language="JavaScript" type="text/javascript">
<!--
function random(min, max, i, filter) {
var array = {};
var zufall = [];
while( i ) {
var rnd = Math.floor(Math.random() * (max - min + 1)) + min;
if( !array[rnd] ) {
array[rnd] = true;
i--;
zufall.push(rnd);
}
}
return zufall;
}
var filter = new Array(0,5,10,11,12,13,15,16,17,18,20,22,23);
console.log("Random: " + random(0,30,10,filter) );
//-->
</script>
一个具有查找功能的提案。
function random(min, max, i, filter) {
var result = [],
filterCount = 0,
rnd;
while (i) {
rnd = Math.floor(Math.random() * (max - min + 1)) + min;
if (~result.indexOf(rnd)) {
continue;
}
if (~filter.indexOf(rnd)) {
if (filterCount >= 4) {
continue;
}
filterCount++;
}
result.push(rnd);
i--;
}
return result;
}
var filter = [0, 5, 10, 11, 12, 13, 15, 16, 17, 18, 20, 22, 23],
zufall = random(0, 30, 10, filter);
document.write('<pre>' + JSON.stringify(zufall, 0, 4) + '</pre>');
相关文章:
- 要求输入在数据列表中
- 从javascript创建一个列表
- 如何使用jQuery选择下拉列表的值
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- Javascript按钮下拉列表
- 如何使用json将对象列表从java转换为javascript
- 区分JSON中的矩阵和列表列表
- jQuery表单添加不适用于下拉列表
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 接受不在列表中的值-引导组合框
- 禁用jQuery中的下拉列表
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- 如何在javascript中迭代数字列表
- 如何在按钮中显示下拉列表中选定的元素
- Javascript随机数没有重复,不在特定列表中
- 如何使用JavaScript创建随机数列表
- 从任意加权列表中生成随机数
- 随机数在1到49之间的有序列表
- 用逗号分隔的随机数列表