我有一个数组中的100个值,但我需要随机选择5个值,每次点击一个按钮,并且我有一个值,例如a = 10,这个值不应该出现在5个选定的值中。如何从jquery的数组值100中选择随机5值?
我尝试了不同的方式,但我不能在jQuery中做到这一点。请任何帮助我。
我有一个数组中的100个值,但我需要随机选择5个值,每次点击一个按钮,并且我有一个值,例如a = 10,这个值不应该出现在5个选定的值中。如何从jquery的数组值100中选择随机5值?
我尝试了不同的方式,但我不能在jQuery中做到这一点。请任何帮助我。
下面的代码可能会有所帮助。 calculateRandoms函数每次从numbers数组计算5个不同的随机数。随机数不能是excludedNumber的值。您可以更改randomCount变量以修改随机数的数量,这些随机数将计算随机数生成。
var excludedNumber = 10;
var randomCount = 5;
var numbers = [];
var randoms = [];
var vPool="";
// initialize array, fill it from 0 to 99
for (var i = 0; i < 100; i++) numbers.push(i + 1);
$(document).ready(function() {
$("#mybutton").click(function() {
calculateRandoms(randomCount);
});
});
function calculateRandoms(c) {
randoms = [];
for (var i = 0; i < c; i++) {
var rnd = excludedNumber;
while (rnd == excludedNumber && $.inArray(rnd, numbers)){
rnd = numbers[Math.floor(Math.random() * numbers.length)];
randoms.push(rnd);
}
}
vPool='';
$.each(randoms, function(i, val) {
vPool+=val + "<br />";
$("#res").html(vPool);
});
//alert(randoms);
//$("#res").html(randoms);
//console.log(randoms);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="button" id="mybutton" value="Generate" />
<div id="res"></div>
不知道,如果它严格需要jQuery,但这里是一个纯粹的JS解决方案。 “输入”是包含100个值的数组。
var output = [];
for (var i = 0, len = input.length; i < 5; ++i) {
var randomIndex = Math.floor(Math.random() * input.length);
if (input[randomIndex] != 10) {
output.push(input[randomIndex);
}
}
的jQuery的脚本? – Elankeeran 2010-08-31 19:56:19
您还可以借助随机原始数组
function reorder(src) {
return src.sort(function (a, b) { return 1 - (Math.random() * 2); });
}
,你可以得到的前5名这样的:
yourArray = reorder(yourArray).slice(0, 5);
顺便说一下,calculateRandoms使用方法jquery.inArray查找数组中的值。 – Zafer 2010-08-31 20:18:43