如何更优雅的写for循环
这是一个由for循环触发的感想。哪里写的不好欢迎拍砖。对格式有要求的 请移步: http://51viola.top
重构片段一:循环
举例:之前习惯顺着逻辑思路一层层往下写
function test1(arr) { for (let i = 1; i < arr.length; i++) { arr[i] *= 2 if (arr[i] % 2 === 0) { doSomething(arr[i]) } }}
声明式方式重写这段代码
function test1(arr) { const evenNumbers = n => n % 2 === 0 arr.slice(1) .map(v => v * 2) .filter(evenNumbers) .forEach(v => doSomething(v)) }
<!-- more -->
紧接着上面demo看
重构片段二:常用的处理数组的方法
slice — arrayObject.slice(start,end)
slice 返回一个子数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。
不设定end参数,表示获取从start 到 数组结尾的所有元素。
map
arr.map([1, 2, 3], function(num){ return num * 3; });=> [3, 6, 9]
通过对数组里的每个元素调用转换函数(iteratee迭代器)生成一个与之相对应的数组。
filter
遍历数组中的每个值,返回所有通过函数真值检测的元素所组成的数组。
重构片段三:使用箭头函数
箭头函数是es6中新语法
var reflect = function(value) { return value;};
等同于:
let reflect = value => value;
let也是es6新语法,我理解的是它比var更严谨,因为let声明的变量只在所在的代码块内有效
如果只有一个表达式,大括号{...}和return都可以省略.
那么问题来了- 我们为什么使用箭头函数?
我们暂且不谈代码更加简洁 这个事,更重要的是,this总是指代外层调用对象,这样就不再需要var that = this.
转载于:https://www.cnblogs.com/zhaoyawei/p/7821879.html
如何更优雅的写for循环相关推荐
- python要在哪里写代码-如何更优雅地写python代码
前言 Python 这门语言最大的优点之一就是语法简洁,好的代码就像伪代码一样,干净.整洁.一目了然.但有时候我们写代码,特别是 Python 初学者,往往还是按照其它语言的思维习惯来写,那样的写法不 ...
- 如何更优雅的写出你的SQL语句
毫无疑问,编写代码是一门艺术而非科学,没有程序员可以编写出既可读又可维护的漂亮代码,即使有经验也是如此. 一般来说,当您学习编码的艺术时,编码水平会随着经验而提高,例如,你会变得更喜欢组合而不是继承或 ...
- 表驱动法(更优雅的写if-else、switch-case)
表驱动法 表驱动法就是一种编程模式(scheme)--从表里面查找信息而不使用逻辑语句(if 和case).事实上,凡是能通过逻辑语句来选择的事物,都可以通过查表来选择.对简单的情况而言,使用逻辑语句 ...
- JavaScript复杂判断的更优雅写法
前提 我们编写js代码时经常遇到复杂逻辑判断的情况,通常大家可以用if/else或者switch来实现多个条件判断,但这样会有个问题,随着逻辑复杂度的增加,代码中的if/else/switch会变得越 ...
- JavaScript 复杂判断的更优雅写法
我们编写js代码时经常遇到复杂逻辑判断的情况,通常大家可以用if/else或者switch来实现多个条件判断,但这样会有个问题,随着逻辑复杂度的增加,代码中的if/else/switch会变得越来越臃 ...
- js中如何优雅的写if判断
我们编写js代码时经常遇到复杂逻辑判断的情况,通常大家可以用if/else或者switch来实现多个条件判断,但这样会有个问题,随着逻辑复杂度的增加,代码中的if/else/switch会变得越来越臃 ...
- 【转】转自微信公众号 JavaScript 复杂判断的更优雅写法
与微信公众号看到一篇js复杂判断的文章,对我启发很大,故转到博客园以供后期不断学习并应用于项目.原文地址:https://mp.weixin.qq.com/s/ClFDRj4MnAxv1dJ5VWKS ...
- 更效率、更优雅 | 阿里巴巴开发者工具不完全盘点
简介: 阿里巴巴将自身在各类业务场景下的技术积淀,通过开源.云上实现或工具等形式对外开放,本文将精选了一些阿里巴巴的开发者工具,希望能帮助开发者们提高开发效率.更优雅的写代码. 从人工到自动化,从重复 ...
- 9条消除if...else的锦囊妙计,助你写出更优雅的代码
点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 前言 最近在做代码重构,发现了很多代码的烂味道.其他的不多说 ...
最新文章
- vue aplayer 进度条无法拖动_为 Vue 的惰性加载加一个进度条
- C++容器适配器之priority_queue
- 采取监测记录网络运行状态_广播播控监测自动化系统改造探析
- 重邮2019计算机考研复试名单,重庆邮电大学2019年硕士研究生招生复试通知
- JavaScript学习笔记:类型检测
- java 获取文件大小_阿里Java后端开发面经,面试官都替我感到绝望
- 利用jQuery点击DIV变颜色的小例子
- 华为云发力分布式云,折射出云计算哪些定势?
- 新建pch文件及配置
- 如何解决Word里插入图片会被压缩
- 6.形容词性物主代词用法
- 2018在职计算机科学硕士申请,2018年哪些学校计算机在职研究生专业比较好
- html 中怎样显示enum,enum怎么读音发音
- 训练诗词生成模型(GPT2)的一点心得
- 回眸 2020,展望 2021
- Gitblit创建版本库并提交项目到版本库
- xxl_job部分源码解读
- [Chatter] 架构设计是做甚么
- 地级市房价月度数据(2009-2021)
- EXCEL怎么隔3行插入1空行?
热门文章
- linux 重复模式元字符,Linux 正则表达式 vi, grep, sed, awk
- C++轻量级微服务_微服务的部署
- 9个元素换6次达到排序序列_面试题精选(排序算法类)c/c++版 上篇
- TED 演讲 How we can control the coronavirus pandemic? 我们如何控制新冠病毒的传播 ?
- 盘点七大类当前世界流行的数据挖掘技术
- 圣斗士星矢服务器维护时间,《圣斗士星矢》6月27日服务器数据互通公告
- element 使用阿里图标变形了_2TB不限速的阿里网盘App来了 终于不再忍受众生平等盘...
- 电脑硬盘分区合并_简单扩容电脑C盘,无需U盘重装系统
- 人脸对齐(三)--AAM算法
- MCU——矩阵键盘扫描问题记录