随机数及数组去重

本文介绍了如何在JavaScript中生成6位的随机数,并探讨了有效地进行数组去重的方法,这对于前端开发中的各种场景如验证码生成、唯一标识等具有实用价值。
摘要由CSDN通过智能技术生成

数组去重

  // 数组去重    
   //第一种
    let arrOld = [2, 3, 5, 4, 3, 2, 6, 8, 5, 4, 6, 2];
    let flag = true;//新数组中没有相同的元素
    // 1、建立新数组
    let arrNew = [];
    // 2、遍历旧数组
    for (let i = 0; i < arrOld.length; i++) {
      flag = true;
           // 4、往新数组中放置旧数组的元素
  
            // 5、遍历新数组
         for (let j = 0; j < arrNew.length; j++) {
       
  
        if (arrNew[j] == arrOld[i]) {
          // 新数组中有相同的元素变成false
          flag = false;
        }
      }
      // 3、判断如果新数组中有相同的元素,就不往新数组中放了
      if (flag) {
        arrNew.push(arrOld[i])// [2, 3, 5, 4, 6, 8]
      }
    }
    console.log(arrNew);
      

        // 第二种 
         var arr = [100, 20, 30, 50, 30, 100, 20, 50];//[100,20,30,50]
        // 1、创建新数组
         var arrNew = [];
        // 2、创建新对象
        var objNew = {};
        // 3、遍历旧数组
        for (let i = 0; i < arr.length; i++) {
         console.log(arr[i]);//100, 20, 30, 50, 30, 100, 20, 50
        // 4、将旧数组中的元素当做新对象的属性名(属性名不能重复),属性值随意写
  
          objNew[arr[i]] = "优秀";
                 }
          console.log(objNew);
           // 5、遍历新对象的属性
          for ( let x in objNew) {// for... in ..以任意顺序迭代一个对象的除Symbol以外的可枚举属性,包括继承的可枚举属性。属性名就//100,20,30,50
  
            console.log(x);//打印属性:100,20,30,50
          // 6、将新对象中的属性当做新数组的元素即可,用push方法添加Number方法转变数据类型
            arrNew.push(Number(x));
            }
      
          
//第三种
       //利用set结构成员值唯一的特点
       let arr = [100, 20, 30, 50, 30, 100, 20, 50];
       let arrSet = new Set(arr);//[100,20,30,50]
  

       

生成6位随机数

// 声明两个变量
    var str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    console.log(str.length);
    var vc2 = '';
    //  for循环获取6位随机数
    for (let i = 0; i <= 5; i++) {
      // 下标取整赋值
      let num = parseInt(Math.random() * str.length);
//Math.random()获取0~1之间的浮点数 参考mdn文档
      // 在 vc2 变量 中 没有字符 str[num]
  if (vc2.indexOf(str[num]) == -1) { 
//indexOf方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1
        // 如果字符不重复,就写入到验证码中
        vc2 += str[num];
      } else {
        i--;
        // 如果字符重复,没有写入验证码
        // 就执行 i-- 重新执行一次循环,获取一个新的字符
        // 确保是6位字符
      }
    }
    console.log(vc2);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值