javascript - 如何从动态数组中选择 3 个唯一的项目

标签 javascript jquery

我有一个动态数组,其示例如下

var nums=[25,12,23,47,55,116,17,80,92,150,191,142,13,124,15,176,187,18,19,20,21,30,31];

您能否告诉我如何从 nums 中选择 3 个唯一的项目并使用纯 JS 的 jQuery 将它们加载到新数组中?

我已经尝试过了

 var arr = []
 while(arr.length < 3){
   var randomnumber=Math.ceil(Math.random()*nums.length)
   var found=false;
   for(var i=0;i<arr.length;i++){
    if(arr[i]==randomnumber){found=true;break}
  }
   if(!found)arr[arr.length]=randomnumber;
 }

但我没有得到我想要的

最佳答案

while (arr.length < 3) {
  var randomIndex = Math.floor(Math.random()*nums.length);
  if (arr.indexOf(nums[randomIndex]) === -1) {
    arr.push(nums[randomIndex])
  }
}

这里,每次循环时我都会创建一个新的随机索引,然后检查该数字是否已在我们的结果数组中。如果不是,我们将其插入,否则我们就重新开始。

关于javascript - 如何从动态数组中选择 3 个唯一的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34406589/

相关文章:

javascript - $.browser.msie 在 jQuery 1.9 中不再工作。替代品在哪里?

javascript - Firebase:如何调用 https.onCall 函数 node.js?

javascript - 无法在 mozilla firefox 中对新窗口使用 .print()

javascript - 更改展开/折叠导航中的默认箭头

javascript - 在 JavaScript 中比较 2 个数组并提取差异

javascript - 斐波那契数列 1 kk 迭代

jquery - 第一个 jQuery 项目 - 使用变量作为选择器

javascript - 为数组加载更多按钮

javascript - Angular js动态生成链接

c# - Jqgrid with asp.net [WebMethod] inside aspx page Issue