2020-3-25

题目一:
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++){//取出指定个数的数组元素,这里采用for循环遍历的方式。
  
    var n=Math.floor(Math.random()*theArray.length);//通过随机数*数组的长度可以获取随机的数组索引,并将其存入变量n。
    
    newArray.push(theArray[n]);//将获取的数组元素存入新的数组。
    
    theArray.splice(n,1);//删除此索引位置的数组元素。
  }
  return newArray+"";//将数组转换为字符串并返回。
}
console.log(done(2,theArray));

相关知识:
Math.floor()可以对一个数字进行下舍入操作。
返回值是小于等于参数,并与之最接近的整数。

Math.random方法可以生成一个随机数。
返回的随机数介于0-1之间。
特别说明:返回值不包括1,也就是返回值是大于等于0小于1。代码实例如下:

let getRandomNum=(m,n)=>{
  return parseInt(Math.random()*(n-m)+m);
}
console.log(getRandomNum(20,50));
//结果为 47

JavaScript splice()此方法对数组具有"剪接"功能。
详细见 splice方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值