从数组

时间:2016-01-12 10:37:04

标签: javascript arrays string random

我希望有一个包含不同单词和短语的数组,并在页面刷新时随机生成其中的五个。我将如何在javascript中执行此操作?

2 个答案:

答案 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个随机元素。