如何从字符串数组中获取8个随机唯一元素?

时间:2015-02-26 09:55:46

标签: javascript arrays

我在使用一些javascript代码时遇到了一些麻烦。基本上我需要做的是从16个元素字符串数组中获取8个唯一元素。

我有这个数组

 biscuits = ['a', 'b','c','d','e','f','g','h','i', 'j', 'k','l','m','n','o','p']

我想随机获取其中的8个元素并打印出来。

我知道如何在一个范围内生成一个随机数。我正在努力的是如何生成唯一的随机数,然后从字符串数组中获取特定项。如果有人能提供帮助,我将非常感激。

我不确定是否应该使用嵌套for循环或检查数值是否已在数组中?我知道这应该是但由于某种原因我不能这样做。

3 个答案:

答案 0 :(得分:1)

您可以复制数组,并在选择时删除生成的值。 因此,下次您随机选择一个元素时,您将无法再次选择相同的元素。 这要求您的数组只包含唯一的元素(没有重复)。

答案 1 :(得分:0)

有几种方法可以做到这一点。一种方式:

  • 制作数组的副本
  • 生成随机数
  • 从数组中删除所选元素
  • 根据新的数组长度生成一个新数字 ... 我觉得你明白了吗?

答案 2 :(得分:0)

以下内容将为您提供一系列独特的newBiscuits,您可以按照自己的意愿进行操作:

biscuits = ['a', 'b','c','d','e','f','g','h','i', 'j', 'k','l','m','n','o','p'];
newBiscuits=new Array();
items=16;
while(newBiscuits.length<8) {
    newBiscuits.push(biscuits.splice(parseInt(Math.random()*items), 1));
    items--;
    }