说明:

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

总结:

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

 <!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body> </body>
<script type="text/javascript">
var test = function(n){
var list = [];
for (var i = 0; i < n; i++) {
var rNum = Math.random()
rNum = Math.floor(rNum*30+2);
if (list.includes(rNum)) {
i -= 1
}else{
list.push(rNum)
}
}
return list;
};
alert(test(5))
</script>
</html>

JS学习笔记(5)--一道返回整数数组的面试题(经验之谈)的更多相关文章

  1. 2019-4-29 js学习笔记

    js学习笔记一:js数据类型   1:基本数据类型       number类型(整数,小数)      String类型          boolean类型        NaN类型其实是一个nu ...

  2. vue.js 学习笔记3——TypeScript

    目录 vue.js 学习笔记3--TypeScript 工具 基础类型 数组 元组 枚举 字面量 接口 类类型 类类型要素 函数 函数参数 this对象和类型 重载 迭代器 Symbol.iterat ...

  3. 基于jquery的插件turn.js学习笔记

    基于jquery的插件turn.js学习笔记 简介 turn.js是一个可以实现3d书籍展示效果的jq插件,使用html5和css3来执行效果.可以很好的适应于ios和安卓等触摸设备. How it ...

  4. Node.js学习笔记(2):基本模块

    Node.js学习笔记(2):基本模块 模块 引入模块 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在No ...

  5. JS 学习笔记--9---变量-作用域-内存相关

    JS 中变量和其它语言中变量最大的区别就是,JS 是松散型语言,决定了它只是在某一个特定时间保存某一特定的值的一个名字而已.由于在定义变量的时候不需要显示规定必须保存某种类型的值,故变量的值以及保存的 ...

  6. WebGL three.js学习笔记 使用粒子系统模拟时空隧道(虫洞)

    WebGL three.js学习笔记 使用粒子系统模拟时空隧道 本例的运行结果如图: 时空隧道demo演示 Demo地址:https://nsytsqdtn.github.io/demo/sprite ...

  7. Spring MVC 学习笔记11 —— 后端返回json格式数据

    Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...

  8. JS学习笔记5_DOM

    1.DOM节点的常用属性(所有节点都支持) nodeType:元素1,属性2,文本3 nodeName:元素标签名的大写形式 nodeValue:元素节点为null,文本节点为文本内容,属性节点为属性 ...

  9. 【转】Backbone.js学习笔记(二)细说MVC

    文章转自: http://segmentfault.com/a/1190000002666658 对于初学backbone.js的同学可以先参考我这篇文章:Backbone.js学习笔记(一) Bac ...

随机推荐

  1. Elasticsearch 数据搜索篇

    curl 'localhost:9200/_cat/indices?v' health index pri rep docs.count docs.deleted store.size pri.sto ...

  2. 阅读jQuery源代码带给我们的18个惊喜

    相信大家都非常熟悉jQuery类库,绝对最受欢迎的JS框架,如果你也有兴趣阅读v源代码的话,或者你也会有同感. 以下便是阅读jQuery源代码后挖掘的18条令人惊奇的信息: 原文:阅读jQuery源代 ...

  3. EXPDP/IMPDP与EXP/IMP在不同用户和表空间之间迁移数据的实现方法

    1. EXPDP/IMPDP方式 SQL> create user zlm identified by zlm; User created. SQL> grant connect,reso ...

  4. iOS 线程操作库 PromiseKit

    iOS 线程操作库 PromiseKit 官网:http://promisekit.org/ github:https://github.com/mxcl/PromiseKit/tree/master ...

  5. 解决Android 5.1系统以上通知状态栏小图标仅仅显示白色问题

    看上图,想必大家都有遇到过吧.近期俺也遇到了,找到了解决方法,如今分享下也做个记录哈. 问题发生的规则是Android5.1或者以上的手机系统使用了非常多的颜色的通知图标,就会出现,怎么解决呢,非常e ...

  6. LInux下inode空间报警-CROND出错导致/var/spool/postfix/maildrop/堆积

    Linux下显示磁盘空间不足,,通过 df -ih 查询发现/dev/mapper/*****var 下的inode用满.inode介绍 通过 du -sh * 查询/目录下的问题,最终查到/var/ ...

  7. Android系统源代码——所需工具

    一.概述 众所周知,Android移动操作系统是Google花费了很大的财力.物力及人力的前提下,推广到世界各个角落,以开放源代码的方式(当然也不是完全开放所有),使其在世界范围内迅速漫延开来,到目前 ...

  8. 一个模块包含多目录和源文件,Makefile写法

    假设这样一种情况,一个内核模块有多个目录多个源文件组成,编译成模块是Makefile如何编写呢? 我这边测试通过的一种方法介绍一下.假设该模块的组成方式如下: module--> a.c     ...

  9. 多语言 SEO

    https://productforums.google.com/forum/?hl=zh-CN#!topic/webmaster-zh-cn/I0MMsm737pc

  10. SCF: 简单配置门面

    SCF: 简单配置门面 [English]  [中文] Simple Configuration Facade, 简写为 SCF.是 代码 和 外部配置 (properties文件, 环境变量,系统/ ...