美文网首页
尽量取消for循环

尽量取消for循环

作者: Alander | 来源:发表于2018-07-30 19:16 被阅读0次

前言

在阅读代码和构建代码过程中(均指JS代码),我得出一个结论:我们应该尽量不使用for循环。理由如下:

  1. for循环语义化太差,不易理解
  2. 使用for循环大多数原因是因为我们自己需要对数组或者对象进行操作,而这些操作远不如JS自带的方法来得高效
  3. 数组的for循环基本都可以被 map();reduce();forEach()等等代替

正文

自己也是在摸索的途中。
今天遇见的第一个问题需求:
1. 将数组中的所有数组进行排序返回一个数组
Input:[[1,4,5],[1,3,4],[2,6]]
Output: [1,1,2,3,4,4,5,6]
暴力的解法很简单,一层一层for循环嵌套遍历即可。
但我们可以选择更简单的、更值观的方法:

let ts = [[1,4,5],[1,3,4],[2,6]]
let res = ts.reduce(
(nows, array) => nows.concat(array).sort((a, b) => a - b),
[])

展示出来的代码其实就一两行,且由于方法名称的语义化,我们清晰地知道每一步在干什么。
除了以上还遇到个需求:
一个输入框只能输入四个数字怎么办
vue双向绑定然后每次值变化的时候操作值呗。
Input:123asdf&.123
Output:1231
看起来挺头大的,我们需要把input遍历每个字符然后判断字符是否符合要求,如果不符合还要去除掉。
但是,JS天生就有一些方法帮助我们来完成这个操作:

this.pwd = this.pwd.split('')
                   .filter(v => /[0-9]/.test(v))
                   .join('')
                   .slice(0, 4)

也是一行,且完全具有语义化,在我自己看来这样写代码比写一堆for循环来的高效得多,我们只需要把解题得思路转化为语言,问题就解决了。

结尾

我相信在日常得开发过程中,我们会不停地遇到for循环,且很有可能变态地嵌套循环。我认为至少在我地编码过程中我都应该尽量避免使用for循环。
希望给自己和大家带来点提醒和另一种思路吧。

相关文章

  • 尽量取消for循环

    前言 在阅读代码和构建代码过程中(均指JS代码),我得出一个结论:我们应该尽量不使用for循环。理由如下: for...

  • [JavaScript基础] 定时器

    setInterval() 每隔多少毫秒,执行一次(循环) clearInterval() 取消循环 setTim...

  • 生命树

    单曲循环了4天 明天开始 取消循环 我好的差不多了

  • 数控机床固定循环编程(G80~G84)详解

    1.取消固定循环指令G80 格式:G80 功能:用G80取消固定循环方式,机床回到执行正常操作状态。孔的加工数据,...

  • Swift 之循环

    传统的 for 循环在 swift 中已经被取消 ++i / i++ 也被取消 Range 和开闭区间 _ 可以表示忽略

  • 【2019-12-07】 Scala for循环嵌套问题

    先说结论:for循环嵌套可能导致内存和GC压力变大,我只想说,辣鸡scala 取消 for(;;){}写法循环的 ...

  • 开发注意事项

    1、事物一般不要用 2、尽量减少sql的处理,减少库的压力 尽量减少对库的操作 3、for循环:看看总共循环了多少...

  • Exectuor中任务与线程的取消

    任务的取消 1.轮询volatile变量 任务取消最简单的方式就是每次循环入口都去轮询volatile变量,但问题...

  • swift3.0语法更新的坑汇总

    1.取消OC风格的for循环 如下代码会报错 在3.0中应该这样: 2.取消了 ++ 和 -- 运算符 3.函数/...

  • PHP编程10个技巧带你飞

    1. foreach效率更高,尽量用foreach代替while和for循环。 2. 循环内部不要声明变量,尤其是...

网友评论

      本文标题:尽量取消for循环

      本文链接:https://www.haomeiwen.com/subject/weqqvftx.html