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方法

发布了21 篇原创文章 · 获赞 0 · 访问量 228
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览