JavaScript 数组随机不重复元素

2019-2-28 19:29| 作者: 蚂蚁小编| 查看: 424| 评论: 0|来自: 蚂蚁部落

实际应用可能需要从数组元素中随机取出几个元素,并且要保证这几个元素不重复。

有些数组可能有重复的元素,那么可能需要首先去除这些重复的元素。

下面是实现此效果的代码:

[JavaScript] 纯文本查看 复制代码运行代码
var theArray=[1,3,2,4,5,9,10,20,15];
function done(num,arr){
  var newArray=[];
  for(var index=0;index<num;index++){
    var n=Math.floor(Math.random()*theArray.length);
    newArray.push(theArray[n]);
    theArray.splice(n,1);
  }
  return newArray+"";
}
console.log(done(2,theArray));

上面代码实现了我们的要求,下面介绍一下它的实现过程。

一.代码注释:

(1).var theArray=[1,3,2,4,5,9,10,20,15],声明一个数组,将会从此数组取元素。

(2).function done(num,arr){},此函数实现了取出指定个数不重复元素效果,第一个参数是要取的个数,第二个是数组对象。

(3).var newArray=[],声明一个空数组,用来存放取出的元素。

(4).for(var index=0;index<num;index++){},取出指定个数的数组元素,这里采用for循环遍历的方式。

(5).var n=Math.floor(Math.random()*theArray.length),通过随机数*数组的长度可以获取随机的数组索引,并将其存入变量n。

(6).newArray.push(theArray[n]),将获取的数组元素存入新的数组。

(7).theArray.splice(n,1),删除此索引位置的数组元素。

(8).return newArray+"",将数组转换为字符串并返回。

二.代码注释:

(1).Math.floor方法参阅JavaScript Math.floor()一章节。 

(2).Math.random方法参阅JavaScript Math.random()一章节。 

(3).push方法参阅JavaScript push()一章节。 

(4).splice方法参阅JavaScript Array splice()一章节。 


鲜花

握手

雷人
1

路过

鸡蛋

刚表态过的朋友 (1 人)

最新评论

返回顶部