首页
学习
活动
专区
工具
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个索引元素)。函数返回一个包含选定元素的新数组。请注意,我们排除了流行的云计算品牌商的提及,并没有提供与腾讯云相关的产品和链接地址。

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

相关·内容

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

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

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

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

    79720

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

    有序数组 大家都知道数组是可以支持随机访问的,也就是通过下标可以快速地定位到元素,时间复杂度是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)子数组的个数。 这两个结合一下, 就可以解决。

    83041

    面试官初体验

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

    30551

    检索技术核心 笔记

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

    80020

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

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

    6K20

    理解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

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

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

    5.5K30

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

    这一条可以认为是第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 来创建。

    29720

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

    从列表中或数组中随机抽取固定数量的元素组成新的数组或列表 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

    疯狂java笔记之线性表

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

    61220

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

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

    1.5K20

    NumPy 1.26 中文官方指南(二)

    数组和数组操作比这里呈现的要复杂得多! 除了从一系列元素创建数组之外,您还可以轻松地创建一个填充有0的数组: >>> np.zeros(2) array([0., 0.])...基本上,C 和 Fortran 顺序与索引如何对应到数组在内存中的存储顺序有关。在 Fortran 中,移动二维数组元素时,第一个索引是变化最快的索引。...如何获取唯一项和计数 本节包括 np.unique() 你可以通过np.unique轻松找到数组中的唯一元素。...数组和数组操作比这里描述的要复杂得多! 除了从一系列元素创建数组之外,您还可以轻松创建一个填满0的数组: >>> np.zeros(2) array([0., 0.])...如何获取唯一项和计数 本节介绍 np.unique() 你可以使用np.unique轻松找到数组中的唯一元素。

    35510

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

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

    48052
    领券