数组中的方法?indexOff(); lastIndexOf();  reverse();sort(); 0-100之间四个随机数?抽奖?

indexOff();   在数组中查找元素。两个参数,第一个为要查找的元素,第二个为从什么位置开始找,返回值为查找到的元素下标,没有查找到则返回-1。若参数只写一个,则指要查找的元素,只查找第一个出现的,不查找重复的元素所有下标,则要用到条件判断。

lastIndexOf();   从后向前搜索,返回的是查找到的元素下标。参数为要查找的元素。

reverse();   颠倒数组中元素的顺序。返回的是一个数组。注意:使用reverse()后,原数组也发生了倒序,返回的新数组和原数组是引用关系(===相等关系)。

sort();     对数组的元素进行排序。返回的是一个数组。注意:使用sort()后,原数组也发生了排序,返回的新数组和原数组是引用关系(===相等关系)。

arr.sort(function(pre,next){   //或参数为a,b
        return pre-next; //由小到大排序,可理解为前减后为负数。让每一个去运算返回一个值然后排序。如return -1;表示只进行一趟的冒泡排序,把最大值冒泡到了最后面。那么pre-next表让该数组的每一个元素都去运算把最大值排到最后面
        return next-pre; //由小到大排序
       });

sort排序也可用于对象里的关键字排序。

<script>
       var data=[
           {id:1001,name:"餐饮1",num:1,price:10},
           {id:1002,name:"餐饮2",num:1,price:20},
           {id:1003,name:"餐饮3",num:1,price:30},
           {id:1004,name:"餐饮4",num:1,price:40},
           {id:1005,name:"餐饮5",num:1,price:50},
           {id:1006,name:"餐饮6",num:1,price:60},
           {id:1007,name:"餐饮7",num:1,price:70},
           {id:1008,name:"餐饮8",num:1,price:80},
           {id:1009,name:"餐饮9",num:1,price:90},
       ];
       for(var i=0;i<data.length;i++){
           data[i].num=parseInt(Math.random()*8+2); //2-10的随机数
       }
       data.sort(function(a,b){
        return a.num-b.num;
       });
       console.log(data);
</script>

0-100之间四个随机数,不重复。

方法一:有点繁杂

<script>
      var arr1=[];
      while(var1.length<4){
          var num=parseInt(Math.random()*100);
          if(var1.indexOf(num)===-1){  //如果在arr1中找不到则将随机数加进arr1,为避免重复的操作
              arr1.push(num);
          }
      }
      console.log(arr1);
</script>

方法二用的是排序的随机乱序

<script>
      var arr1=[];
     for(var i =0;i<100;i++){
         arr1.push(i);
     }
     arr1.sort(function (){
         return Math.random()-0.5; //这里有可能出现正值(大到小排列)也有可能出现负值(小到大排序)。注意是数组里每一个元素都进行一次随机的Math.random()-0.5排序
     });
     arr1.length=4;
     console.log(arr1);
</script>

抽奖

<script>
      var arr1=[];
     for(var i=0;i<9985;i++){
         arr1.push();
     }
     for(var j=1;j<6;j++){  //用递增的方式设置各中奖次数
         for(var a=0;a<j;a++){
             arr1.push(j);
         }
     }
     arr1.sort (function(){
         return Math.random()-0.5;
     });
      console.log(arr1);
</script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值