JS 在指定数组中随机取出N个不重复的数据

Posted 小小鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS 在指定数组中随机取出N个不重复的数据相关的知识,希望对你有一定的参考价值。

/*
*思路:每次随机从数组抽出一个数放进新的数组,然后将这个数从原数组中剔除,这个就不会抽到重复的数了
*/
function
makeRandomArr(arrList,num){ if(num>arrList.length){ return; } // var tempArr=arrList.concat(); var tempArr=arrList.slice(0); var newArrList=[]; for(var i=0;i<num;i++){ var random=Math.floor(Math.random()*(tempArr.length-1)); var arr=tempArr[random]; tempArr.splice(random, 1); newArrList.push(arr); } return newArrList; }

说明:数组的赋值,例如直接将arr1赋值给arr2,那么改变arr2,arr1也会发生改变,因为他们的都指向一个内存容器。所以我为了不改变原数组,用了下面其中一个方法。

 var tempArr=arrList.concat(); //返回数组的拷贝数组,注意是一个新的数组,不是指向
 var tempArr=arrList.slice(0);//返回数组的拷贝数组,注意是一个新的数组,不是指向
栗子:
var testArr=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17];
var test=makeRandomArr(testArr,7);
console.log(test);//2,5,8,3,9,10,15
console.log(testArr);//1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17

 

以上是关于JS 在指定数组中随机取出N个不重复的数据的主要内容,如果未能解决你的问题,请参考以下文章

js从数组中取出n个不重复的数据

js从数组中随机获取n个不重复的数据

在指定数字范围内,随机获取n个不重复数字

js如何从一个数组中随机取出n个不同且不重复的值

js如何从一个数组中随机取出n个不同且不重复的值

js如何生成指定范围内的随机数