新航路师徒学院

 找回密码
 立即注册
搜索
查看: 600|回复: 1

一道前端js面试题

[复制链接]

80

主题

114

帖子

560

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
560
发表于 2017-3-8 10:42:26 | 显示全部楼层 |阅读模式
  1. 编写一个javscript函数 fn,该函数有一个参数 n(数字类型),其返回值是一个数组,该数组内是 n 个随机且不重复的整数,且整数取值范围是 [2, 32]。
复制代码


回复

使用道具 举报

80

主题

114

帖子

560

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
560
 楼主| 发表于 2017-3-8 10:42:45 | 显示全部楼层

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta name="renderer" content="webkit"/>
  6.     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
  7.     <title>新航路师徒学院_黑科技Web前端_Html5定岗培训就业|前端工程师</title>
  8.     <meta name="description" content="新航路师徒学院是国内首个实施师徒制、完整教学、WEB+MVX+企业制的实训模式。新航路师徒学院致力黑科技Web前端web3.0技术定岗实训,为300余名企提供前端人才岗前实训。"/>
  9.     <meta name="keywords" content="Web前端定岗实训、WEB业务化、WEB前端入门、新航路师徒学院、新航路教学中心、新航路教育、黑科技、新航路学院、前后端分离开发、Web前端开发培训、HTML5开发培训、WEB+MVX、新航路、黑科技Web"/>

  10. </style>
  11. </head>
  12. <body>
  13. <script>
  14.     // 随机数封装
  15.     function randomFunc(min,max){
  16.         return parseInt(Math.random()*(max-min)+min);
  17.     }
  18.     // 数字检测
  19.     function checkInArr(arr,rnd){
  20.         for(var i=0,len=arr.length;i<len;i++){
  21.             if(arr[i]==rnd){
  22.                 return true;
  23.             }
  24.         }
  25.         return false;
  26.     }
  27.     function fn(n){
  28.         // 定义一个空数组
  29.         var arr = [];
  30.         // 定义一个取值范围
  31.         var min = 2,max = 32;
  32.         // 检测如果是字符串 就转换一下 变成数字
  33.         if(typeof n=="string"){
  34.             n = parseInt(n);
  35.         }
  36.         // 如果不是数字 就直接返回空数组
  37.         if(isNaN(n)){
  38.             return [];
  39.         }
  40.         var n = parseInt(n);
  41.         // 循环n的长度
  42.         for(var i=0;i<n;i++){
  43.             // 取随机数
  44.             var rnd = randomFunc(min,max);
  45.             // 重复检测
  46.             if(checkInArr(arr,rnd)){
  47.                 // 如果重复就跳出这次迭代 ,会少一次
  48.                 // continue;
  49.                 // 如果发现重复,就再增加一次循环
  50.                 i--;
  51.             }else {
  52.                 // 否则就放进数组
  53.                 arr.push(rnd);
  54.             }
  55.         }
  56.         // 返回给函数
  57.         return arr;
  58.     }
  59.     console.log(fn(4))
  60. </script>
  61. </body>
  62. </html>
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

新航路师徒学院 ( 京ICP备16035622号

GMT+8, 2018-9-20 06:48 , Processed in 0.134935 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表