美文网首页
javascript函数输出任意个数的范围数组

javascript函数输出任意个数的范围数组

作者: 瓜跑跑 | 来源:发表于2017-12-21 16:34 被阅读0次
    示意图
    //   生成一个区间范围内数值
    function getRandom(start,end){
        if( typeof start === "number" && typeof end === "number"){
            return Math.ceil(Math.random()*(end-start)) + start 
        }else{
            throw new Error("arguments must be a number")
        }       
    }
    
    //    生成符合数量和区间范围的数组
    function pick(num,start,end){
        if(typeof num === "number"){
            var result = []
            var arr = []
            var distance = end - start   // 区间值之间的差额数量
    
            !function innerPick(){        
                for(var i=0; i<num; i++){
                    arr.push(getRandom(start,end))   // 执行生成区间值函数操作并添加给数组
                }            
                result = arr.filter(function(ele,index,self){
                    return self.indexOf(ele) == index    //  去除重复的数组  导致数组数量可能会减少
                })            
                if(result.length < distance){    
                    innerPick()    // 判断是否被去重操作  减少了数组数量为true就在递归一次  数组数量可能会超出规定
                }else{
                    result.length = distance     //   如果递归后数组数量超出   则裁剪到靠后的多余数组并返回新数组
                    return result   
                }
            }()
            return result    //  返回新数组
        }
        else{
            throw new Error("arguments must be a number")
        } 
    }
    
    var a = pick(10,10,20)
    
    console.log(a)

    相关文章

      网友评论

          本文标题:javascript函数输出任意个数的范围数组

          本文链接:https://www.haomeiwen.com/subject/pomawxtx.html