javascript中随机10个1到100之间的数字的最佳方法没有欺骗? [复制]

2024-01-01

这个问题已经被问过几十次了,但不知何故,在阅读了很多答案后,我并不相信。我不清楚最好的方法、性能和代码简单性。

  1. 我是否应该设置列表 [1.. 100] 并继续从那里选择随机数(它将运行 10 次)到另一个数组,避免每次新的随机数都搜索它?

  2. 我应该开发并运行 10 次(至少)一个随机函数来返回 1.. 100,检查它是否不是一个骗局并将其放入数组中?

  3. 我缺少一些 Javascript 函数吗?

Thanks


您可以使用 while 循环来生成随机数Math.random()并将数字添加到Set https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set其中仅包含唯一值。

var randoms = new Set();
while(randoms.size<10){
  randoms.add(1 + Math.floor(Math.random() * 100));
}
console.log([...randoms.values()]);

您还可以仅使用数组并在将其推送到数组之前检查生成的随机数是否已存在于其中。

var randoms = [];
while(randoms.length<10){
  var random = Math.ceil(1 + Math.floor(Math.random() * 100));
  if(randoms.indexOf(random)==-1){
    randoms.push(random);
  }
}
console.log(randoms);

对于更通用的功能,您可以使用:

function generateRandoms(min, max, numOfRandoms, unique){
  /*min is the smallest possible generated number*/
  /*max is the largest possible generated number*/
  /*numOfRandoms is the number of random numbers to generate*/
  /*unique is a boolean specifying whether the generated random numbers need to be unique*/
    var getRandom = function(x, y){
      return Math.floor(Math.random() * (x - y + 1) + y);
    }
    var randoms = [];
    while(randoms.length<numOfRandoms){
      var random = getRandom(min, max);
      if(randoms.indexOf(random)==-1||!unique){
        randoms.push(random);
      }
    }
    return randoms;
}
function generateRandoms(min, max, numOfRandoms, unique){
    var getRandom = function(x, y){
      return Math.floor(Math.random() * (x - y + 1) + y);
    }
    var randoms = [];
    while(randoms.length<numOfRandoms){
      var random = getRandom(min, max);
      if(randoms.indexOf(random)==-1||!unique){
        randoms.push(random);
      }
    }
    return randoms;
}
console.log(generateRandoms(1, 100, 10, true));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javascript中随机10个1到100之间的数字的最佳方法没有欺骗? [复制] 的相关文章

  • 在沙盒中的服务器上运行不受信任的 JavaScript 代码

    我似乎不知道如何设置节点沙箱 它可以安全地运行不受信任的代码 并允许用户通过api调用与程序交互 系统输入和输出 我正在尝试在浏览器中设置一个控制台 以便用户从服务器运行自己的代码 是否有任何节点包支持此功能 或者我是否需要编写自己的节点虚
  • 如何使用鼠标单击选择多个项目?

    This is the default jQueryUI display as a Grid Layouts demo here http jqueryui com demos selectable display grid I can s
  • JW Player - 视频可以在 Chrome 中播放,不能在 Firefox 或 IE 中播放

    See 工作链接 http www 888behindthescenes com test 在主页上我有两个视频 intro video 和 video container 在 chrome 下我没有问题 但在 firefox 和 IE 中
  • React 和 Leaflet 结合的好方法

    我正在开发一个将 React 和 Leaflet 结合起来的项目 但我必须说我在语义方面遇到了一些困难 由于大部分内容都是由 Leaflet 直接管理的 我不知道将 Leaflet 映射实例添加为 React 组件中的状态是否有意义 当涉及
  • 使用 vue.js 显示 json 结果

    您好 我尝试使用 vue js 显示 json 文件结果 目标是结果将显示在值上 这是我的代码 data return fetchData function var self this self http get api casetotal
  • 自定义过滤器在 Angular Hybrid 应用程序中不起作用

    我正在尝试将 AngularJS 1 6 应用程序与 Angular 5 一起转换为混合应用程序 我定义了以下简单过滤器 function use strict var filterId colorPicker angular module
  • Internet Explorer 的数组indexOf 实现

    有很多关于如何将 indexOf 实现放入数组原型中以便它可以在 Internet Explorer 下工作的解决方案 但是我偶然发现了一个问题 到目前为止我所看到的任何地方似乎都没有解决这个问题 使用非常一致的MDC 的实施 https
  • 当容器有选择框时 jQuery mouseleave 触发问题

    我有两个容器 一个嵌套在另一个容器内 当我将鼠标悬停在父容器上时 我希望显示子容器 当我鼠标移出时 我希望子容器淡出 我遇到的问题是子容器有一个包含 选择框 的表单 当用户选择选择框时 会意外触发 mouseleave 事件 如何阻止选择框
  • 如何从回调函数中获取值

    我对 javascript 比较陌生 并且面临一些困难 我有两个 java 脚本文件 如下所示 我无法获取变量的值条目标题在 getRss 函数内并将其存储在变量内Rss1 标题 and Rss2 标题 创建一个全局变量并将其分配给条目标题
  • 为什么这些 Javascript for 循环在 Firefox 上比 Chrome / Safari 上慢得多?

    我在搞基准网站jfprefs http jsperf com 并创建了我自己的基准http jsperf com prefix or postfix increment 9 http jsperf com prefix or postfix
  • 所有属性的 JavaScript getter

    长话短说 我现在的情况是想要一个 PHP 风格的 getter 但是是 JavaScript 的 我的 JavaScript 仅在 Firefox 中运行 因此 Mozilla 特定的 JS 对我来说没问题 我能找到的制作 JS gette
  • 与玻璃钢战斗

    我读过有关 FRP 的内容 非常兴奋 它看起来很棒 因此您可以编写更多高级代码 并且一切都更加可组合 等等 然后我尝试用数百个 sloc 从纯 js 到 Bacon 重写我自己的小游戏 我发现 我实际上不是编写高级纯逻辑代码 而是击败了 B
  • 不明白为什么 Chrome/Safari 无法在此处获取 ScrollHeight

    我只是问了一个问题 为什么某些 js 代码不能 100 在 Chrome 和 Safari 中工作 但经过更多故障排除后 我想我发现这是我应该发布的问题 我有一个页面 其中有一个表单 该表单的目标是同一页面上的 iframe iframe
  • 调整发散堆积条形图以使用通用更新模式

    我一直在使用可用的堆积条形图示例here https bl ocks org mbostock b5935342c6d21928111928401e2c8608使用以下代码 var data month Q1 2016 apples 384
  • 需要了解Javascript函数提升示例

    我阅读了 Javascript 提升的概念 它非常令人困惑 但我看到了一些示例并了解了提升的实际作用 所以基本上 提升是 JavaScript 的默认行为 即将所有声明移动到当前作用域的顶部 当前脚本或当前函数的顶部 但我无法理解以下实现
  • 如何从 dataurl 在服务器上创建图像文件

    我有一个 dataurl 格式的图像 例如 data image jpeg base64 9j 4AAQSkZJRgABAQAAAQABAAD 2wBDAAMCAgMCAgMDAwMEAwME iiigAooooAKKKKACiiigAoo
  • 如何使用 jQuery AJAX 和 JSON 通过 Bootbox 确认表单提交

    我正在使用一个网络应用程序工作Spring MVC 我试图在提交表单之前显示一个确认对话框Bootbox 但我收到 500 内部服务器错误 这是我的表格
  • 如何使用 Browserify 获取 html 模板

    我正在尝试找出一种简单的方法 在脚本中需要 html 模板 然后从 CLI 运行 browserify 假设我想获取一个模板并将其附加到正文中 index js var template require template html docu
  • JavaScript 不是 DOM 的一部分吗?

    为什么即使从 DOM 中删除用于创建脚本的代码 脚本仍然可以运行 我遇到了一种情况 我想阻止损坏的脚本运行 查看我的帖子 https stackoverflow com questions 2685581 is there a way to
  • jQuery 存储类型未定义

    我用了一个jQuery 存储 https ui5 sap com api jQuery sap storage存储数据 oStore jQuery sap storage jQuery sap storage Type local oSto

随机推荐

  • 如何在 SwiftUI 中显示来自数据源(如 UITableView)的视图列表

    在 SwiftUI 中 我们有List代表可重复使用的物品 就像UITableView in UIKit 静态列表的构建如下 List Text cell Text cell Text cell Text cell 但好像是这样不可重复使用
  • 如何使用 page.find 通过 rspec 测试查找变量

    我有一个测试用例 我的大多数其他页面至少有一个字段只是纯文本 可以使用以下方式找到 page find tr text What I filled in find a tick click 本页所有选项都是下拉选择 那么如何找到变量呢 其余
  • Python 3.X 中 classname.attribute 和 self.attribute 有什么区别

    有如下两段代码 class State country China def init self print State country obj State and class State country China def init sel
  • 如何自动注入状态参数

    Abstract 你好 我在我的项目中使用 Angular ui router 我有大量的嵌套状态和不同的视图 这些视图又包含大量不同的输入 用户逐步增量地填充这些输入 问题 有时用户需要位于上一步的附加信息 浏览器的 后退 按钮可以帮助用
  • 如何在c中创建自定义数据包?

    我正在尝试使用 TCP IP 协议使用 C 语言制作自定义数据包 当我说自定义时 我的意思是能够更改数据包中的任何值 例如 MAC IP 地址等 我尝试四处搜索 但找不到任何实际指导我或给我示例源代码的东西 如何创建自定义数据包或者我应该在
  • 从 Facebook 墙到 Android 应用程序的新闻提要

    有什么方法可以将 Facebook 墙上的最后一个帖子转移到 Android 应用程序中吗 我想制作一些类似 RSS 阅读器来获取一些有关应用程序的信息 为了更好地解释 我在 Facebook 上有一个关于一个足球俱乐部的页面 在那里我发布
  • 对于项目外的文件,如何在java中将File转换为IFile?

    通常 此代码用于从File to IFile IWorkspace workspace ResourcesPlugin getWorkspace IPath location Path fromOSString file getAbsolu
  • 禁止网站上的机器人[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我的网站经常宕机 因为蜘蛛正在访问许多资源 这是主持人告诉我的 他们告诉我禁止这些 IP 地址 46 229 164 98 46 229
  • 将自定义 css 添加到 WordPress 中的页面模板

    你好 我需要一些帮助来为我的页面模板创建自定义 css 文件 关于这个问题有很多主题 但随着我阅读的每个主题 我都会获得更多信息 也更加困惑 我为二十四主题创建了一个子主题 并添加了一个页面模板 我如何将自定义 css 添加到此模板 我发现
  • 在 sql 结果中填充空日期的最直接方法是什么(在 mysql 或 perl 端)?

    我正在从 mysql 表构建一个快速 csv 查询如下 select DATE date count date from table group by DATE date order by date asc 然后将它们转储到 perl 中的
  • 将weld-se 与 Gradle 应用程序插件一起使用时出现 Bean 发现问题

    我正在构建一个基于 Gradle 的 Java SE 应用程序 该应用程序构建在 Hibernate 之上 作为我选择的 ORM 我的计划是使用weld se能够使用 CDI 注释进行注入EntityManagers整个申请过程中 基于共同
  • 标签栏项目色调颜色

    在 iOS 7 中 我一直在开发一个使用 UITabBarController 的应用程序 我注意到即使我更改了选项卡栏的色调颜色 选项卡栏项目仍保持灰色 有什么方法可以更改未选定的选项卡栏项目的颜色吗 要做到这一点 遵循一个简单的方法 根
  • 增加字符串中的字符

    我有以下代码 string str A 我想以编程方式获取下一个字母字符 例如 B C D E 等 谁能建议一种方法来做到这一点 使用而不是整个字符串Char http msdn microsoft com en us library sy
  • 为什么 Duration 类没有“toSeconds()”方法?

    我正在看Duration https docs oracle com javase 8 docs api java time Duration htmlJava 8 中的类并注意到它没有 long toSeconds 但其他的都有了toXX
  • 每个 Ember 环境保留带有多个适配器的固定装置

    尽管自然进展会将夹具适配器更换为另一个适配器 http emberjs com guides getting started using other adapters 我想保留开发环境的固定装置 同时利用不同的 Ember 数据适配器进行生
  • 如何在焦点()上以编程方式隐藏jquery mobile中的键盘

    我想在 Focus 上隐藏键盘 但是当 ui input text focus 它会自动打开键盘 我只想隐藏在特定屏幕中 我进行了测试document activeElement blur 但它也没有 focus on input 提交表单
  • pip:从远程 git 存储库中提取更新

    我安装了scikit学习 https github com scikit learn scikit learn几周前来自 GitHub pip install git git github com scikit learn scikit l
  • 如何读取 Perl 中外部命令的错误输出?

    作为一个更大的 Perl 程序的一部分 我正在检查以下输出diff文件夹中的输入文件与参考文件的命令 其中空白输出 匹配 是通过结果 而 diff 的任何输出都是失败结果 问题是 如果目标文件夹缺少预期文件的数量 则抛出的异常 diff 不
  • 用户如何将输入类型日期设置为空?

    我希望使用 HTML5 DATE 中的新输入属性 只有一个问题 在项目的逻辑中 用户必须可以选择删除该值 但我不知道如何在此输入上设置空值 假设您想让显示的值dd mm yyyy 然后单击Clear button
  • javascript中随机10个1到100之间的数字的最佳方法没有欺骗? [复制]

    这个问题在这里已经有答案了 这个问题已经被问过几十次了 但不知何故 在阅读了很多答案后 我并不相信 我不清楚最好的方法 性能和代码简单性 我是否应该设置列表 1 100 并继续从那里选择随机数 它将运行 10 次 到另一个数组 避免每次新的