我的代码在这里没有div,我必须一次选择5个randomaly
<div id="#jpId1"></div>
<div id="#jpId2"></div>
<div id="#jpId3"></div>
<div id="#jpId4"></div>
<div id="#jpId5"></div>
<div id="#jpId6"></div>
<div id="#jpId7"></div>
<div id="#jpId8"></div>
<div id="#jpId9"></div>
<div id="#jpId10"></div>
<div id="#jpId11"></div>
我希望array (r)
,values of id's
没有重复,但值会重复......任何帮助都很明显......我必须将这些ID用于特定用途
var itemp = ["#jpId1", "#jpId2", "#jpId3", "#jpId4", "#jpId5", "#jpId6", "#jpId7","#jpId8", "#jpId9", "#jpId10", "#jpId11"]
for (var i = 0; i < 5; i++) {
var r = itemp[Math.floor(Math.random() * itemp.length)];
alert(r);
}
答案 0 :(得分:1)
试试这个(splice
从源数组中删除所选元素):
var r = [];
for (var i = 0; i < 5; i++) {
r.push(itemp.splice(
Math.floor(Math.random() * itemp.length), 1
)[0]);
}
alert(r);
答案 1 :(得分:0)
当你从数组中得到第一个随机值时,使用splice方法从数组中删除该particluar值。
var random = Math.floor(Math.random() * item.length);
item[random];
然后从数组中删除该特定值。
item.splice(random,1);
在循环中使用它会为你提供每个新值。
答案 2 :(得分:0)
您可以查看以下代码:
var nums = ["#jpId1", "#jpId2", "#jpId3", "#jpId4", "#jpId5", "#jpId6", "#jpId7","#jpId8", "#jpId9", "#jpId10", "#jpId11"],
ranNums = [],
i = 5,
j = 0;
k = 10;
while (i--) {
j = Math.floor(Math.random() * (k+1));
ranNums.push(nums[j]);
nums.splice(j,1);
k--;
}
console.log(ranNums);
您可以在此处找到http://jsfiddle.net/8Xb5g/1/
链接答案 3 :(得分:0)
以下是代码:
var itemp = ["#jpId1", "#jpId2", "#jpId3", "#jpId4", "#jpId5", "#jpId6", "#jpId7","#jpId8", "#jpId9", "#jpId10", "#jpId11"];
id_arr=Array();
for (var i = 0; i < 5; i++) {
var r = itemp[Math.floor(Math.random() * itemp.length)];
if($.inArray(r, id_arr)>-1)
{
alert ("duplicate "+r+", hence discarded");
i--;
continue;
}
else
id_arr.push(r);
alert(r);
}
console.log(id_arr)
<强> Fiddle 强>