js数组

本文详细介绍了JavaScript中如何遍历和比较不同层级的数组结构,并提供了多种方法实现数组的扁平化处理,包括使用toString().split()、reduce()等内置函数。同时,文章还分享了一个抽奖算法实例,展示了如何利用数组和随机数进行等级和奖品的分配。

片段1

 1 //有  [1, [2, [3, 4]], 5, 6];
 2 //输出[ 1, 2, 3, 4, 5, 6 ]
 3 
 4 var aa = [1, [2, [3, 4]], 5, 6];
 5 
 6 //第一种方法
 7 var bb = aa.toString().split(',').map(function(v){
 8    return +v;
 9 });
10 
11 //第二种方法
12 function flatArray(notArray){
13   return notArray.reduce(function(prev, cur, index){
14      var deeper = [].concat(cur).some(Array.isArray);
15      return prev.concat(deeper ? flatArray(cur) : cur);
16   }, [] );
17 }
18 
19 //第三种方法
20 function getArr(arr){
21    var newArray = [] ;
22    (function a(arr){
23        
24         for( var i = 0 ; i < arr.length ; i++ ){
25               if(arr[i].constructor == Array){
26                     a(arr[i])
27               }else{
28                   newArray.push(arr[i]);
29               }
30         }
31    })(arr);
32 
33    return newArray;
34 }

 

 

片段2

 

 1 var  selects = new Array();
 2 var  selectsCopy = new Array();
 3 Array.prototype.contans = function(obj){
 4   var i = this.length ;
 5     while(i--){
 6         if(this[i] === obj){
 7           return true;
 8           }
 9         }
10   return false;
11 }
12 
13 //level 抽奖的等级
14 //num 抽奖个数
15 //selects 需要比较的数组
16 
17 function compare(num1 , num2){
18    if(num1 > num2){
19       return 1;
20    }if(num1 < num2){
21       return -1;
22    }else{
23       return 0;
24    }
25 }
26 var selectPeople = function(level, num, selects){
27    while(num > 0){
28      aaa = parseInt(Math.random()*20000);
29      if(!selectsCopy.contans(aaa)){
30         selects.push([level, aaa]);
31         selectsCopy.push(aaa);
32         num--;
33      }
34      
35    }
36    return selects;
37 };

 

转载于:https://www.cnblogs.com/maduar/p/4554648.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值