如何从字符串数组中获取多个随机字符串。 例如:

const arr = [
'Text1',
'Text2',
'Text3',
'Text4',
'Text5'
]

结果:

const randomStrings = [
'Text1',
'Text4'
]

#1楼 票数:3 已采纳

您可以使用Math.random() 这将生成一个介于 0 和 1(不包括 1)之间的随机数。 然后,您可以将此数字乘以数组的长度,并使用Math.floor()在数组中生成索引。 当我们使用splice ,它会改变原始数组,但它确保不会有重复的值。

 const arr = ['Text1', 'Text2', 'Text3', 'Text4', 'Text5'] const out = [] const elements = 2 for (let i = 0; i < elements; i++) { out.push(...arr.splice(Math.floor(Math.random() * arr.length), 1)) } console.log(out)

正如 Terry 所提到的,最好创建一个数组的本地副本,这样它就不会被修改。 它还允许传递参数来选择返回的元素数量:

 const arr = ['Text1', 'Text2', 'Text3', 'Text4', 'Text5'] const getRandomElements = (a, n) => { const l = a.slice() const o = [] for (let i = 0; i < n; i++) { o.push(...l.splice(Math.floor(Math.random() * l.length), 1)) } return o } console.log(getRandomElements(arr, 2)) console.log(getRandomElements(arr, 3)) console.log(getRandomElements(arr, 4))

  ask by Shiny Diamond translate from so

未解决问题?本站智能推荐:

1回复

如何从字符串数组中获取随机对象

我试图从数组中获取一个随机对象,并将其添加到字符串中。 但是,当您运行此命令时,它什么也不做。 如果您将此帖子标记为重复帖子,请知道问题不是在问如何随机化数组,我的问题是如何从数组中添加对象并将其添加到字符串中。
2回复

如何从数组中单击以获取随机字符串而不重复?

想法是: 单击按钮以将标题替换为数组的唯一字符串 。 问题在于,我以前像这样使用过数组的字符串: 但是我不想再次显示相同的标题,这就是为什么要关键检查实际索引randomNumberBefore是否与新索引randomNumber 不同的数字 。 以下功能对我来说很有意义,但有时它返回相
3回复

遍历数组以获取随机字符串,然后删除该字符串,以便不再选择

如上! 我正在尝试通过一系列团队进行淘汰赛竞赛。 我的目标是: 从一组团队中选择一个随机的团队。 删除该团队,使其无法再次选择。 循环浏览,直到选择了所有团队。 我已经管理过数字1和3,但正在努力使2)在我的职责范围内工作。 我已经尝试过.push和.splice
2回复

javascript,从随机字符串获取数字数组

我在nums.match()处不断收到未定义的函数错误。 我也尝试了其他方法,但没有成功。 我想在javascript中创建一个通用函数,该函数将从随机字符串中提取所有数字,然后按提取顺序将它们添加到数组中。 知道为什么我不断收到此错误吗? 这是我当前的功能:
3回复

如何从字符串数组中获取随机字符串?

我有一个String[] ,我想从中获得一个随机值。 我尝试将该逻辑放在另一种方法中。 到目前为止,这是我的代码。 我需要使用方法get()从数组S取出随机字符串,但我真的不知道该怎么做。
2回复

如何从字符串数组中获取随机字符串

这个问题在这里已经有了答案: 如何从数组中随机选择一个元素13 个回答 10 个月前关闭。 我正在做一个电影计划制作者,我必须在文本框中设置几部电影,然后按
3回复

如何从字符串数组获取?

服务器数组: 数组([28.01.2015] =>数组([03] => 2 [02] => 4)) 已使用json_encode转换为字符串。 结果是一个字符串: 如何使用Javascript将此字符串转换为数组?
2回复

如何从数组中获取匹配字符串的结果?

我有以下数组,当我键入数字'98'时我想显示两个结果,当我键入'983'时我想显示'string 2'的结果,但是当我键入数字'98'时我没有得到任何结果有人帮我在这里做错什么吗? 这是我的以下代码 var array = [ { name:"string 1", number:9