我希望有一个包含不同单词和短语的数组,并在页面刷新时随机生成其中的五个。我将如何在javascript中执行此操作?
答案 0 :(得分:0)
您可以使用数组长度并运行for循环来使用Math.random()执行此操作:
var randomNums = [];
for(var i=0; i<5; i++){
int x = myArray[Math.random()*(myArray.length-1)];
if(!randomNums.contains(x)){
randomNums.push(x);
}
}
randomNums应该是一个包含来自其他数组的五个随机值的数组
答案 1 :(得分:0)
循环。
每次从原始数组中删除1个对象并将其放入新的对象中
如果您想保留原始阵列,可以复制。
var myArray = [];
var myNewArray = [];
for (var i=0; i<5; i++) {
myNewArray.push(myArray.splice(Math.random()*(myArray.length-1),1).pop());
}
你也可以用0和myArray.length-1之间的5个随机数创建一个数组。然后,如果生成的数字已经在数组中,则必须在生成每个随机数后检查。
var indexArr = [];
while (indexArr.length < 5) {
var rndIndex = Math.random()*(myArray.length-1);
if (indexArr.indexOf(rndIndex) == -1) // if rndIndex is not in indexArr
indexArr.push(rndIndex);
}
然后你可以使用indexArray从原始数组中返回5个随机元素。