JS案例之8——从一个数组中随机取数

近期项目中遇到一个需求,从一个列表中随机展示列表的部分内容,需求不大,JS也非常容易实现。主要是运用到了Math对象的random方法,和Array的splice方法。

思路是先新建一个数组,存放所有的列表,然后算出随机数,从数组中取出这个随机索引对应的值,然后组成一个随机数组。

源代码如下:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" Content="text/html; charset=utf-8;">
 5 <title>从一个数组中随机取数</title>
 6 <meta name="author" content="rainna" />
 7 <meta name="keywords" content="rainna‘s js lib" />
 8 <meta name="description" content="js" />
 9 </head>
10
11 <body>
12 <script>
13 //count 数组的总长度    randomCount 随机显示的数量
14 var selRandomNum = function(count,randomCount){
15     var count = count || 10;
16     var randomCount = randomCount || 3;
17
18     var totalArray = [],randomArray = [];
19     for(var i=0,l=count;i<l;i++){
20         totalArray.push(i);
21     }
22     for(var i=0,l=randomCount;i<l;i++){
23         var randomIndex = Math.floor(Math.random()*totalArray.length);
24         var selectIndex = totalArray.splice(randomIndex,1)[0];
25         randomArray.push(selectIndex);
26     }
27     console.log(totalArray + ‘-----‘ + randomArray);
28 }
29
30 selRandomNum();
31 </script>
32 </body>
33 </html>
时间: 2024-10-01 04:30:44

JS案例之8——从一个数组中随机取数的相关文章

从一个数组中随机取出一定数量元素组成新数组

/** * 从一个数组中随机取出一定数量元素组成新数组 * @param array 一个String类型的数组 * @param number需要取出元素的数量 * @return 一个随机的数组 * @throws NullPointerException原数组不能为空 *@throws ArrayIndexOutOfBoundsException新数组长度应不大于原数组的长度 */ public static String[]  getRandomArray(String[] array,

从一个数组中随机的取出若干个不同的数

/* * 此程序是从一个不重复的数组中随机的取出若干个不同的元素 * 难点是防止在取数的时候出现已经取到过的情况(特别是取到最后),需要尽可能的降低碰撞 */ //第一种算法,CSDN上别人的想法 /* $num = 0; $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9); $arr = array(); $g = 5; $tag = true; while ($tag) { $count = count($array); $t = rand(0, 1); if

一个数组中,一些数出现2次,只有两个数各出现一次,找出这两个数

https://leetcode.com/problems/single-number-iii/ 初次看到这题时,就想到用异或,但只能找出这两个数异或的结果,不能找出这两个数.最后我用快排过了,然后去看了看人家的思路.看来还是得仔细分析其中的隐藏信息啊.比如:从这两个数异或后的结果值可以看出,从低位开始到某一位不为0时,一定是这两个数的二进制位在此时不同了(从低位开始一定可以找到一个不为0的,因为这两个数不同).这个位可以用树状数组的lowbit方法将异或值与此值的负数进行异或求出.然后将这个数

一个数组中所有的数都是成对出现的只有一个或者两个数字是单独的,求这个数

如果只有一个数,那么我们可以用按位亦或(^)来得到,代码如下: #include<stdio.h> int main() { int arr[] = { 1, 1, 2, 2, 3, 3, 4 }; int size = sizeof(arr) / sizeof(int); int num = 0; for (int i = 0; i < size; i++) { num ^= arr[i]; } printf("%d\n", num); system("p

从一个数组中随机产生多个不重复数据的方法

此算法来源与网上,纯属个人心得!!! 在一个已知的集合中,随机取出多个(小于集合长度)不重复的数据: List<Integer> list = new ArrayList<Integer>(); List<Integer> output = new ArrayList<Integer>(); //产生一个长度为一千的集合 for (int i = 1; i < 1000; i++) { list.add(i); } Random random = ne

JS从数组中随机取出几个数组元素的方法

原文链接:http://caibaojian.com/js-get-random-elements-from-array.html js如何从一个数组中随机取出一个元素或者几个元素. 假如数组为· var items = ['1','2','4','5','6','7','8','9','10']; 1.从数组items中随机取出一个元素 var item = items[Math.floor(Math.random()*items.length)]; 2.从前面的一篇随机数组中随机取几个元素

从数组中随机抽取一个值,(别人问我,我自己想到的一个方法)

今天本来在群里瞎扯淡的,突然看到有人问一个问题,大概意思是:怎么样从一个数组中随机抽取一个元素.当时我想到了PHP中有一个内置函数是打乱数组的顺序的.我就想用这个函数打乱一下,然后就抽取第一个元素. 代码如下: $array = array( 'das'=>array('id'=>1,'name'=>'于杭'), 'dasss'=>array('id'=>2,'name'=>'张三'), 'dass'=>array('id'=>3,'name'=>'李

求出数组中超过一半的数

Tango 是微软亚洲研究院的一个试验项目.研究院的员工和实习生们都很喜欢在 Tango上面交流灌水.传说,Tango 有一大"水王",他不但喜欢发贴,还会回复其他 ID 发的每个帖子.坊间风闻该"水王"发帖数目超过了帖子总数的一半.如果你有一个当前论坛上所有帖子(包括回帖)的列表,其中帖子作者的 ID 也在表中,你能快速找出这个传说中的 Tango 水王吗? 思路:首先想到的是一个最直接的方法,我们可以对所有 ID 进行排序.然后再扫描一遍排好序的 ID 列表,统

程序员面试100题之十:快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值(转)

能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解. 假如有如下的两个数组,如图所示: 5,6,1,4,7,9,8 给定Sum= 10 1,5,6,7,8,9 给定Sum= 10 分析与解法 这个题目不是很难,也很容易理解.但是要得出高效率的解法,还是需要一番思考的. 解法一 一个直接的解法就是穷举:从数组中任意取出两个数字,计算两者之和是否为给定的数字. 显然其时间复杂度为N(N-1)/2即O(N^2).这个算法很简