要计算,不要判断

If ... else ...是程序中复杂性的主要来源,减少If ... else ...就是减少复杂性。

如果可以用? :运算符替换一个If ... else ...,那么最好替换。它不只是把三行写成一行,而是用一次运算代替了一次判断。程序复杂度从2变成了0。需要注意? :并不是一个真正的运算符,它相当于一个分段函数:

f(x) = {
   x != 0, g(x);
   x == 0, h(x);
}

最佳的办法当然是把x的范围限定到有效那部分,这样就变成g(x)h(x)

另一个办法是合并g/h,用一个函数来计算,比如说,对于集合

if (x !in coll) return;

for (a in coll) {
    do some thing
}

把上下两部分看成一个函数,可以用空循环处理代替第一个判断,或者在集合尾部加上x做为哨兵,当成始终都有x元素的集合处理。

// 使用空循环代替第一个判断, 当没有x时,for循环为空。
for (a in  coll.filter(a => a != x)) {
    do some thing
}
// 或者使用哨兵
coll.push(x)
for (a in coll) {
   // 一定有一个x
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,256评论 0 13
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,026评论 0 38
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,533评论 0 5
  • 大街上总有一些人很不起眼,但我却非常敬佩他们。 “他们”,无非就是小商贩了。我之所以敬佩他们,是因为他们很努力地做...
    玖笙s阅读 331评论 1 2
  • 分享135 赞美的种类 1、直接赞美 2、自我赞美 3、间接赞美 赞美的作用 1、建立合作关系 2、暗示性...
    梓桐洁儿阅读 317评论 0 2