• JS学习笔记(5)--一道返回整数数组的面试题(经验之谈)


    说明:

    1. 微信文章里看到的,作者是马超 网易高级前端技术经理,原文在网上搜不到,微信里可以搜“为什么你的前端工作经验不值钱?”,里面写着“转载自网易实践者社区”。(妈蛋,第二天网上就有了http://bbs.ruoren.com/thread-47371512-1-1.html

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

    3. 下面代码是自己写的,能实现功能,但仅仅只达到了作者的第一步“可用”的要求。

    4. 后面的“健壮”:考虑输入校验,包括n的取值范围是否是1到32的整数,n是否是数组,n是否存在。

    5. “可靠”:返回值,返回一个可靠的结果,如果类型可靠,返回什么数组,如果范围可靠,返回什么数组。是否抛异常。

    6. “宽容”:如果n是字符串数字,是否可以运行,如果n含有小数,是否可以运行,是否有足够的注释,如果调整[2,32]的范围,是否可以快速调整,甚至不用调整?

    7. “精益求精”:实际开发中,时刻留意以上原则,会给你带来周围同事的更多认可,但这种认可不包括你自己(意境好高)。

    总结:

    宽容是宽以待人,精益求精是严以律己。内外兼修才是高手。当你将这五个原则(可用、健壮、可靠、宽容、精益求精)变成你自己的开发习惯,你的工作经验就跟你的工作时间没有关系了。

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4     <title></title>
     5 </head>
     6 <body>
     7     
     8 </body>
     9 <script type="text/javascript">
    10     var test = function(n){
    11         var list = [];
    12         for (var i = 0; i < n; i++) {
    13             var rNum = Math.random()
    14             rNum = Math.floor(rNum*30+2);
    15             if (list.includes(rNum)) {
    16                 i -= 1
    17             }else{
    18                 list.push(rNum)
    19             }
    20         }
    21         return list;
    22     };
    23     alert(test(5))
    24 </script>
    25 </html>
  • 相关阅读:
    L84
    L83
    T57
    T56
    Listen 82
    Listen81
    PyQt(Python+Qt)学习随笔:QListView的isWrapping属性
    PyQt(Python+Qt)学习随笔:QListView的movement属性
    PyQt(Python+Qt)学习随笔:QListView的gridSize属性
    第15.20节 PyQt(Python+Qt)入门学习:QColumnView的作用及开发中对应Model的使用
  • 原文地址:https://www.cnblogs.com/Jacklovely/p/6509358.html
Copyright © 2020-2023  润新知