首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

(JS)我如何从一个数组中随机拉出3个唯一的元素,除了第0个索引?

从一个数组中随机拉出3个唯一的元素,除了第0个索引,可以采取以下步骤:

  1. 首先,创建一个新的空数组,用于存放随机选择的元素。
  2. 使用数组的slice方法复制原始数组,并排除第0个索引元素,以确保选择的元素不包括第0个索引。
  3. 创建一个循环,循环3次,以选择3个元素。
  4. 在循环中,使用Math.random方法生成一个0到数组长度减一的随机整数,作为随机索引。
  5. 使用splice方法从复制的数组中移除并返回选中的随机元素,同时将其添加到新的数组中。
  6. 循环结束后,新的数组将包含3个随机且唯一的元素。

以下是示例代码:

代码语言:txt
复制
function getRandomElements(arr) {
  var selectedElements = [];

  var copiedArr = arr.slice(1); // 复制数组并排除第0个索引

  for (var i = 0; i < 3; i++) {
    var randomIndex = Math.floor(Math.random() * copiedArr.length);
    var selectedElement = copiedArr.splice(randomIndex, 1)[0];
    selectedElements.push(selectedElement);
  }

  return selectedElements;
}

var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
var selectedElements = getRandomElements(arr);
console.log(selectedElements);

此代码示例中,我们有一个初始数组 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],使用getRandomElements函数来从数组中随机选择3个唯一的元素(不包括第0个索引元素)。函数返回一个包含选定元素的新数组。请注意,我们排除了流行的云计算品牌商的提及,并没有提供与腾讯云相关的产品和链接地址。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

70NumPy练习:在Python下一举搞定机器学习矩阵运算

输入: 输出: 答案: 12.从一数组删除存在于另一数组元素? 难度:2 问题:从数组a删除在数组b存在所有元素。 输入: 输出: 答案: 13.获取两个数组元素匹配索引号。...答案: 由于我们想保留物种,一文本字段,已经把dtype设置为object。设置dtype = None,则会返回一维元组数组。 26.如何从一维元组数组中提取特定列?...难度:1 问题:找到irissepallength5位和95百分位值。 答案: 32.如何数组随机位置插入一值?...答案: 方法2是首选,因为它创建了一可用于采样二维表格数据索引变量。 43.用另一数组分组时,如何获得数组第二大元素值? 难度:2 问题:第二长物种最大价值是什么?...输出: 答案: 65.如何找到数组n重复项索引 难度:2 问题:找出x1重复5次索引

20.7K42

数据结构和算法之数组(难度级别:初级)

每个元素都可以通过它在数组索引唯一标识(与您可以通过上面示例朋友所在步骤来标识您朋友方式类似)。...原因是为了扩展,如果我们改变大小,我们不能确定(每次都不可能)我们是否可以免费获得下一内存位置。收缩将不起作用,因为数组在声明时会静态获取内存,因此编译器是唯一销毁它的人。...数组索引类型 : 0(从零开始索引):数组第一元素由下标 0 索引。 1(从一开始索引):数组第二元素以 1 下标进行索引。 n(基于 n 索引):可以自由选择数组基本索引。...cout << arr[0]; return 0; } 输出 5 这里输出了值 5,因为第一元素索引为零,并且在索引处我们已经分配了值 5。 使用数组优点: 数组允许随机访问元素。...{10, 20, 30, 40, 50}; // 通常访问数组 i 索引项目 // 作为“arr[i]”。

55821
  • 说透游戏中常用两种随机算法

    洗牌算法 第一解决方案,我们可以换个思路,避开「在数组随机选择k元素」这个问题,把问题转化成「如何随机打乱一数组」。...我们来证明一下,假设总共有n元素,我们要随机性无非就是每个元素被选择概率都是1/n对吧,那么对于i元素,它被选择概率就是: i元素被选择概率是1/i,在i+1次不被替换概率是1...对于洗牌算法shuffle函数也可以采取类似的验证方法,我们可以跟踪某一元素x被打乱后索引位置,如果x落在各个索引次数基本相同,则说明算法正确,你可以自己尝试实现,就不贴代码验证了。...2、如何对带有权重样本进行加权随机抽取?比如给你一数组w,每个元素w[i]代表权重,请你写一算法,按照权重随机抽取索引。...3、实现一生成器类,构造函数传入一很长数组,请你实现randomGet方法,每次调用随机返回数组元素,多次调用不能重复返回相同索引元素

    74520

    谁说有序链表不能进行二分查找?!

    有序数组 大家都知道数组是可以支持随机访问,也就是通过下标可以快速地定位到元素,时间复杂度是O(1)。 那么,这个随机访问特性除了根据下标查找元素,还具有哪些用处呢?...试想,如果一数组是有序要查找某个指定元素如何才能做到最快速地查找出来呢? ?...这里,需要增加一“层”概念,假设原始链表层级为0,那么,在其中选择一些元素向上延伸,形成1层索引,同样地,在1层索引基础上,再选择一些元素向上延伸,形成2层索引,直到你觉得索引层数差不多了为止...插入元素6,根据索引,查找路线为,h2->h1->3->3->4,咦,发现4下一是7了,所以,6放在4和7之间,然后,决定要不要形成索引随机决定说要形成索引,而且也要形成2层索引,这时候就很麻烦了...不能,因为从这条路径过来,删除1层索引6后,无法修复3->9这条线,所以,删除元素时候只能走h2->h1->3->3->4->6这条路径,且把途中每一层最后经过索引记住,才能在删除了6这个元素之后正确地修复各层索引

    1.8K30

    【西法带你学算法】一次搞定前缀和

    环绕字符串唯一子字符串[1](中等) 795. 区间子数组个数[2](中等) 904. 水果成篮[3](中等) 992. K 不同整数数组[4](困难) 1109....需要注意是这四道题前置知识都是 滑动窗口, 不熟悉同学可以先看下之前写 滑动窗口专题(思路 + 模板)[7] 母题 0 有 N 正整数放到数组 A 里,现在要求一数组 B,新数组...母题 1 如果让你求一数组连续子数组总个数,你会如何求?其中连续指的是数组索引连续。...母题 2 继续修改下题目, 如果让你求一数组相邻差为 1 连续子数组总个数呢?其实就是「索引差 1 同时,值也差 1。」 和上面思路类似,无非就是增加差值判断。...由母题 2,我们知道如何求满足一定条件(这里是元素都小于等于 R)子数组个数。 这两结合一下, 就可以解决。

    82441

    面试官初体验

    主键索引: 数据列不允许重复,不允许为NULL,一表只能有一主键。 唯一索引: 数据列不允许重复,允许为NULL值,一表允许多个列创建唯一索引。...nums 和整数 k,请返回数组 k 最大元素。...请注意,你需要找数组排序后 k 最大元素,而不是 k 不同元素 时间要求 20 min 输入输出示例 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 输出: 5 示例...快慢指针 给定一非空整数数组除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次元素 说明: 你算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?...异或 异或运算A ⊕ B真值表如下: AB⊕FFFFTTTFTTTF 动画演示 有一 n 元素数组除了两个数只出现一次外,其余元素都出现两次,让你找出这两只出现一次数分别是几,

    30451

    理解JavaScript数据结构(链表)

    我们知道,数组元素索引编号和顺序存储在数据库: 321610011716_.pic.jpg 在使用数组时,在开始或特定索引处添加/删除元素这样操作可能是一项性能较低任务,因为我们必须移动所有其他元素索引...由于在对象元素存储位置是随机,因此,在执行诸如在开始处或特定索引处添加/删除元素之类操作时,无需移动元素索引: 341610011761_.pic.jpg 尽管在对象添加和删除元素速度很快,...2步: 将索引为1节点指针(在本例为89)分配给新节点(在本例为45): image.png 3步: 将新节点(45) next 指向给下一节点(12) image.png 这就是执行插入操作方式...尽管复杂度为O(n),但我们发现此插入操作比对数组插入操作快得多,在数组,我们必须将所有元素索引移到特定索引之后,但是在链接,我们仅操纵 index-1 和index 位置节点下一属性。...在使用对象时,我们面临问题是元素在内存随机位置,而在链表,节点是通过指针相互连接,指针提供了一定顺序。 是小智,我们下期见!

    1.3K10

    检索技术核心 笔记

    毕竟如果我们要在有序数组插入一元素,为了保证“数组有序”,我们就需要将数组中排在这个元素后面的元素,全部顺序后移一位,这其实是一 O(n) 时间代价了。...这种以 bit 为单位构建数组方案,就叫作 Bitmap,翻译为位图。 数组是以 char 类型元素为一单位,因此,我们第一步,就是要找到 11 bit 在数组第几个元素里。...这就代表着, 11 bit 存在于 2 元素里,并且在 2 元素位置是 3 。...bitmap 是一集合,每个元素在集合中有一唯一不冲突编号(用户自己保证,在数据库这个编号可以是行号),是双射关系。...05 | 倒排索引如何从海量数据查询同时带有“极”和“客”唐诗? 一以对象唯一 ID 为 key 哈希索引结构,叫作正排索引(Forward Index).

    79320

    看图学NumPy:掌握n维数组基础知识点,看这一篇就够了

    它不受舍入错误影响,并始终生成要求元素数。 出于测试目的,通常需要生成随机数组,NumPy提供随机整数、均匀分布、正态分布等几种随机数形式: ?...从NumPy数组获取数据另一种超级有用方法是布尔索引,它允许使用各种逻辑运算符,来检索符合条件元素: ? 注意:Python三元比较3<=a<=5在NumPy数组不起作用。...因此在二维数组,如果axis=0是按列,那么axis=1就是按行。 ? 矩阵运算 除了普通运算符(如+,-,*,/,//和**)以元素方式计算外,还有一@运算符可计算矩阵乘积: ?...能够从一数组中生成二位数组列向量操作是使用命令reshape重排和newaxis建立新索引: ?...有趣是,(和唯一操作模式)默认axes参数颠倒了索引顺序,这与上述两索引顺序约定都不相符。

    6K20

    比较JavaScript数据结构(数组与对象)

    数组数据以有序方式进行结构化,即数组第一元素存储在索引0,第二元素存储在索引1,依此类推。 JavaScript为我们提供了一些内置数据结构,数组就是其中之一 ?...在JavaScript,定义数组最简单方法是: let arr = [] 上面的代码行创建了一动态数组(长度未知),为了了解如何数组元素存储在内存,我们来看一示例: let arr = [...内存名称按以下方式存储: image.png 为了理解数组如何工作,我们需要执行一些操作: 添加元素: 在JavaScript数组,我们有不同方式在数组结尾,开关以及特定索引处添加元素。...在数组末尾添加一元素: JavaScript 数组有一默认属性 length,它表示数组长度。除了length属性外,JS还提供了 push() 方法。...这只是一特殊情况,该情况也说明了对象不是完美的数据结构。 除了*哈希碰撞,使用对象时还必须注意另一种情况。 JS 为我们提供了一内置keys()方法,用于遍历对象键。

    5.4K30

    Python大牛私藏20python代码,短小精悍,用处无穷

    这一条可以认为是4条反例,这里是将列表字符串合并为字符串。4条可以与5条结合,来去除字符串不想留下项。 6.寻找字符串唯一元素 ?...在python,对于唯一筛查,首先应该想到对于set利用,set可以帮助我们快速筛查重复元素,上述程序,set不仅可以对字符串,而且还可以针对列表进行筛查。 7.将元素进行重复 ?...12.判断字符串所含元素是否相同 ? Counter函数还可以用来判断字符串包含元素是否相同,无论字符串中元素顺序如何,只要包含相同元素和数量,就认为其是相同。...enumerate() 函数用于将一可遍历数据对象(如上图列表,字符串)组合为一索引序列。 16.代码执行消耗时间 ?...使用random.sample()函数,可以从一序列中选择n_samples随机且独立元素。 20.检查唯一性 ?

    1.2K20

    2023【腾讯】面试真题

    另外,多个订阅者可以从一或者多个分区同时消费数据,以支撑海量数据处理能力。...唯一索引索引值必须是唯一,但是允许为空值, 主键索引:是一种特殊唯一索引,不允许有空值。...内存空间占用:LinkedList 比 ArrayList 更占内存,因为 LinkedList 节点除了存储数据,还存储了两引用,一指向前一元素,一指向后一元素。...当数据增加时,可能超出原先定义元素个数;当数据减少时,造成内存浪费; 链表动态地进行存储分配,可以适应数据动态地增减情况l 数组在内存连续,链表不连续; 数组元素在栈区,链表元素在堆区; (静态...主键,是一种特殊唯一索引,在一张表只能定义一主键索引,主键用于唯一标识一条记录,使用关键字 PRIMARY KEY 来创建。

    29420

    从列表数组随机抽取固定数量元素组成新数组或列表

    从列表数组随机抽取固定数量元素组成新数组或列表 1:python版本:python里面一行代码就能随机选择3样本 >>> import random >>> mylist=list(range...元素 >>> newlist [4, 7, 2] >>> newlist = random.sample(mylist, 3) #从mylist随机获取3元素 >>> newlist [4, 3...那么jQuery怎么随机选出固定数组数组[1, 2, 3, 4, 5, 6, 7, 8, 9]元素,并构造成新数组?...arr,随机返回num不重复项 function getArrayItems(arr, num) { //新建一数组,将传入数组复制过来,用于运算,而不要直接操作传入数组; var...(Math.random()*temp_array.length); //将此随机索引对应数组元素值复制出来 return_array[i] = temp_array

    6K10

    一年双非本科大厂面试经历

    小顶堆时间复杂度是多少? 以时间复杂度O(n)从长度为n数组找出同时满足下面两条件所有元素: 该元素比放在它左边所有元素都大; 该元素比放在它右边所有元素都小。...爬楼梯 写一方法生成随机色值,例如#c1c1c1 Vue双向绑定原理 computed实现原理 浏览器为什么要阻止跨域请求?如何解决跨域?每次跨域请求都需要到达服务端吗?...❞ 实现一函数 findLastIndex(), 返回指定数在“有序”数组中最后一次出现位置索引 如findLastIndex([1,2,3,3,3,4,5], 3), 返回4。时间复杂度是多少?...比如调用方代码如下 // a.js cacheRequest('/user', data => { console.log('是从A请求user,数据为' + data); }) // b.js...❞ 项目相关(这一块聊得挺多) 一面的随机色值没做对,面试官让继续做。 写一方法,把16进制颜色值转成10进制。

    2.3K30

    多图,一文了解 8 种常见数据结构

    来列举一下常见 8 种数据结构,数组、链表、栈、队列、树、堆、图、哈希表。 ? 这 8 种数据结构有什么区别呢? ①、数组 优点: 按照索引查询元素速度很快; 按照索引遍历数组也很方便。...下图展示了树一些术语: ? 根节点是 0 层,它子节点是 1 层,子节点子节点为 2 层,以此类推。 深度:对于任意节点 n,n 深度为从根到 n 唯一路径长,根深度为 0。...除了 d 层,其它各层节点数目均已达最大值,且 d 层所有节点从左向右连续地紧密排列,这样二叉树被称为完全二叉树。 ?...拿上图来说,d 为 3,除了 3 层, 1 层、 2 层 都达到了最大值(2 个子节点),并且 3 层所有节点从左向右联系地紧密排列(H、I、J、K、L),符合完全二叉树要求。...在线性结构,数据元素之间满足唯一线性关系,每个数据元素(除第一和最后一外)均有唯一“前驱”和“后继”; 在树形结构,数据元素之间有着明显层次关系,并且每个数据元素只与上一层元素(父节点

    47852

    蔚来真题和答案,主打一简单?

    ; ref — 使用非唯一索引查找数据; eq_ref — 在 join 查询中使用主键或唯一索引关联; const — 将一主键放置到 where 后面作为条件查询, MySQL 优化器就能把这次查询优化转化为一常量...压缩列表 ziplist 本质上就是一字节数组,是 Redis 为了节约内存而设计一种线性数据结构,可以包含多个元素,每个元素可以是一字节数组或一整数。...添加流程 Redis 跳跃表添加流程如下图所示: 第一元素添加到最底层有序链表(最底层存储了所有元素数据)。...第二元素生成随机层数是 2,所以再增加 1 层,并将此元素存储在 1 层和最低层。 第三元素生成随机层数是 4,所以再增加 2 层,整个跳跃表变成了 4 层,将此元素保存到所有层。...第四元素生成随机层数是 1,所以把它按顺序保存到最后一层即可。 其他新增节点以此类推。

    19430

    疯狂java笔记之线性表

    线性表每个数据元素其实可以包含若千数据项,例如,使用ai来代表线性表i元素,其中ai元素可以包含若千数据项。关干线性表还可以有如下定义。...总存在唯一“第一”数据元素。 总存在唯一“最后一”数据元素。 除第一数据元素外,集合每一数据元素都只有一前驱数据元素。...除了最后一数据元素外,集合每个数据元素都只有一后继数据元素。 线性表基本操作 如果需要实现一线性表,程序首先需要确定该线性表每个数据元素。接下来,应该为该线性表实现如下基本操作。...初始化:通常是一构造器,用于创建一线性表 返回线性表长度:该方法用于返回线性表数据元素 获取指定索引元素:根据索引返回线性表数据元素 按值查找数据元素位置:如果线性表存在一或多个与查找值相等数据元素...而且顺序表每个元素都可随机存取,因此顺序存储线性表时一种随机存取存储结构。 为了使用顺序结构实现线性表,程序通常会采用数组来保存线性表数据元素

    60520

    从一道面试题引发原理性探究

    JavaScript 对象支持存储 V8 JavaScript 对象(JSObject)使用 2 word(除了头部):一 word 用于存储指向元素存储指针,另一 word 用于存储指向属性存储指针...word (computer architecture) 元素存储用于像数组索引属性,而属性存储用于其键为字符串或符号属性。...但是,对于那些没有添加到哈希表对象,这会浪费内存。相反,我们可以尝试将散列码存储在元素存储或属性存储元素存储是一包含其长度和所有元素数组。...在这里没有太多工作要做,因为可以把哈希码存储在一保留(比如 0 索引),不过,当我们不使用这个对象作为哈希表关键字时,仍然会浪费内存。 让我们看看属性存储。...(略微简化了这一点 - V8 也可以在其他情况下使用字典,但是可以存储在数组数量有一固定上限。)

    1.5K20
    领券