• 面试题思考



    > *
    > * 一道面试题引发的思考
    > * 编写js 函数fn ,有一个参数n , 实现返回数组,n个随机且不重复的整数值。返回的整数值范围[2,32]之间。
    > * 1.工作经验,一般都不是按照工作年限计算 (思考自己工作经验)
    > * 2.例如:工作y年,经验系数 1
    > *
    * 总结: 书写代码:可用、健壮、可靠、宽容、精益求精 (变成自己以后写代码习惯)
    可用:简单合格;居然开始没有思路

    健壮:基本的兼容性处理 边界 异常 输入处理 保证核心功能的正确输出
    --- 如果没对n 的取值范围做校验 (n 1- 31直接正整数) 经验系数0.3
    --- 如果没有对n是否为数字校验 系数0.5
    --- 如果没有对n 是否存在校验 经验系数 0.7
    --- 如果上述校验都做了,但是没有校验对 系数 0.9
    自己代码都没有做这些

    可靠:js没有数据结构类型 函数的返回值也无法强制返回数据。返回可靠结果
    --- 如果留意并且处理返回可靠数据 请将经验系数*1.2;
    --- 异常情况下的处理 异常情况是否 要抛出error

    宽容:第一步对需求宽容 对调用者宽容 对用户宽容 对维护者宽容
    --- 如果n是一个字符串 是否允许进入处理流程 如果是 *1.1
    --- 如果n是一个含有小数的数字 是否进入流程处理 如果是 *1.3
    --- 代码中是否有足够清晰的注释 如果是 系数*1.1
    --- 如果需求调整了[2,32]的范围,你的代码是否能够可以快速调整,甚至不调整如果是 *1.2

    精益求进: 实际开发中,时刻注意这些原则
    *
    </P>

    ```

    function isCheck(value){
    console.log("========"+value);
    var j = 0 ;
    for(var i = 0; i< randomArr.length; i++){
    console.log("========"+i);
    if(value == randomArr[i]){
    break;
    }else{
    j++
    }
    }
    if(i == j){
    return true;
    }else{
    return false;
    }
    }
    function getNRandomArr(n){
    for(var i = 0; i < n ; i++){
    var value = parseInt(Math.random()*100);
    console.log("========"+value);
    if(value>1 && value < 33 && isCheck(value)){
    console.log("========"+value);
    randomArr.push(value);
    }else{
    i--;
    }
    }
    }

  • 相关阅读:
    操作系统简介
    计算机基础
    Django之form
    CMDB资产采集
    Git
    User model
    多级评论
    个人主页
    media路径设置
    Web框架
  • 原文地址:https://www.cnblogs.com/PopularProdigal/p/6535124.html
Copyright © 2020-2023  润新知