【发布时间】:2016-01-12 10:37:03
【问题描述】:
我想要一个包含不同单词和短语的数组,并在页面刷新时随机生成其中的五个。我将如何在 javascript 中执行此操作?
【问题讨论】:
-
你卡在哪里了?你不知道如何从 0-n 生成一个随机数吗?你知道如何循环获得其中的五个吗?有了随机索引后,你不知道如何从数组中获取元素吗?
标签: javascript arrays string random
我想要一个包含不同单词和短语的数组,并在页面刷新时随机生成其中的五个。我将如何在 javascript 中执行此操作?
【问题讨论】:
标签: javascript arrays string random
循环运行。
每次从原始数组中删除 1 个对象并将其放入新数组中
如果你想保留你原来的数组,你可以复制一份。
var myArray = [];
var myNewArray = [];
for (var i=0; i<5; i++) {
myNewArray.push(myArray.splice(Math.random()*(myArray.length-1),1).pop());
}
您还可以创建一个包含 5 个介于 0 和 myArray.length-1 之间的随机数的数组。然后你必须在每次随机数生成后检查生成的数字是否已经在数组中。
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 个随机元素。
【讨论】:
您可以使用数组长度并运行 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 应该是一个数组,其中包含来自其他数组的五个随机值
【讨论】: