• 编写一个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源码里的东西进行

    学而不思则罔,思而不结则殆,结而不看,一事无成
  • 相关阅读:
    mysql in like GROUP_CONCAT
    StringBuilder的常用方法
    mysql 中unionall 使用
    mysql中,数据库字段为时间戳转时间的处理方法
    一个数组储存多个对象
    Java中的substring()用法
    java思想篇1
    任务调配管理
    字符窜数组去重及各种常规用法
    自定义属性的设值
  • 原文地址:https://www.cnblogs.com/windseek/p/7929224.html
Copyright © 2020-2023  润新知