专栏首页杨龙飞前端编写一个javscript函数 fn,该函数有一个参数 n(数字类型),其返回值是一个数组,该数组内是 n 个随机且不重复的整数,且整数取值范围是 [2, 32]。

编写一个javscript函数 fn,该函数有一个参数 n(数字类型),其返回值是一个数组,该数组内是 n 个随机且不重复的整数,且整数取值范围是 [2, 32]。

今天看到一道题目,说是为什么自己前端不值钱?然后还不怎么相信,就试着做了做题目,然后。。。。。。

好吧,经过,30分钟的磨合,写出了一些健壮的代码

function c(n){
    //判断数组里是否包含一个某一项值
    function contains(arr,item){
        var flag=false;
        for(var i=0;i<arr.length;i++){
            if(arr[i]==item){
                flag=true;
            }
        }
        return flag;
    }
    //创建随机数组
    function arrCreate(arr,n){
        while(arr.length<n){
            //随机整数(2,32)
            item=Math.floor(Math.random()*(32-2)+2)
            if(!contains(arr,item)){
                arr.push(item);
            }
        }
    }
    //判断参数类型
    function type(n){
        var class2type = {}
        var objs = "Boolean Number String Function Array Date RegExp Null Undefined".split(" ");
        for (var i = 0, l = objs.length; i < l; i++) {  
            class2type[ "[object " + objs[i] + "]" ] = objs[i].toLowerCase();  
        } 
        return class2type[Object.prototype.toString.call(n)];
    }
    var arr=[];
    if(type(n)!='number'){
        throw("您传入的不是数字类型请传入数字类型的参数")
    }
    arrCreate(arr,n);
    return arr;
}
console.log(c(5));

判断参数类型的时候我利用的jquery源码里的东西进行

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 快速排序法,冒泡排序法

    windseek
  • 快速排序法,冒泡排序法

    windseek
  • RN中webview的一些思考

    刚开始只是对接一下RN,h5部分,嵌套在RN里的webview里需要隐藏一些原生的按钮,遇到很多沟通上的问题,本来没使用RN之前,也是嵌套在webview里,也...

    windseek
  • 高通电池曲线

    参考高通文档: 80-NL239-4_F_PMIC_SW_Driver_Overview_MSM8916.pdf DTS文档: android\kerne...

    233333
  • 译文|要不要去影视音乐互动大会呢?先看看数据吧

    本文由CDA数据分析研究院翻译,译者:王晨光,转载必须获得本站、原作者、译者的同意,拒绝任何不表明译者及来源的转载! 去一趟德州影视音乐互动大会(以下简称SXS...

    CDA数据分析师
  • 前端一些需要掌握的简单知识点

    Peter谭金杰
  • 使用django-haystack实现全文检索

    django是python语言的一个web框架,功能强大。配合一些插件可为web网站很方便地添加搜索功能。

    菲宇
  • Qt创建及使用动态链接库(一)

    2、显示链接DLL,调用DLL中类对象、成员函数。(通过对象即可实现类成员函数的调用)

    Sindsun
  • php面向对象第十三篇 抽象类,记住哈,兄弟们,实现它。哈哈哈

    什么是抽象方法? 定义一个类没有方法体的就是抽象方法。 那什么又是方法体呢? 大括号{}及大括号以内的部分为方法体哈。 重要:没有方法体的后面必须加一个...

    用户7873631
  • Vue ES6箭头函数使用总结

    let func = (state, arg2) => state.count + arg2

    授客

扫码关注云+社区

领取腾讯云代金券