我知道经常被问到有关使用 javascript(非重复)获取随机数的问题,但在我的情况下,我将相同的 jquery 代码附加两次或三次,并且我希望每次都获得不同的信息。
首先,我有一个以这种方式构建的大型数组(150 个项目):
var arr = [
{
"Numéro": "1",
"Chinois": "爱",
"Pinyin": "ài",
"Français": "aimer, affection, apprécier",
"Classificateurs": ""
},
然后我在另一篇文章中发现了这个随机函数:
while(arr.length < 150){
var randomnumber=Math.ceil(Math.random()*147)
var found=false;
for(var i=0;i<arr.length;i++){
if(arr[i]==randomnumber){found=true;break}
}
if(!found)arr[arr.length]=randomnumber;
}
然后我在页面上附加数组信息(我随机尝试 - 这是一种抽认卡类型的页面,因此单击,下一个“索引”应该是随机且唯一的):
$('#qcm-az, .suivantQcm1').on ('click', function(qcmaz){
$('#reponse1').html(arr[index].Français);
$('#reponse2').html(arr[147 -Math.floor((Math.random() * 23)+1)].Français);
$('#reponse3').html(arr[99 - Math.floor((Math.random() * 65)+1)].Français);
$('#reponse4').html(arr[43 - Math.floor((Math.random() * 21)+1)].Français);
index = randomnumber;
});
所以基本上在页面加载或(如果单击下一个箭头)我希望再次运行“index = randomnumber”但它似乎卡住了(因为随机数似乎一劳永逸地分配)。
最后你可以看到,在我的不同 div 上,我使用了一个不那么随机的函数来获得不同的索引号。我经常遇到一个问题,即“好答案”(reponse1)与“错误答案”(reponse2,3 或 4)之一相同。
我希望我清楚地解释了自己——我从 Javascript/Jquery 开始。先感谢您。
编辑:我添加了一个小提琴来向您展示问题(只需单击主体以移至下一个项目 - 单击此处后卡住)