缩短Javascript if-else结构 [英] Shortening a Javascript if-else structure

查看:58
本文介绍了缩短Javascript if-else结构的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的代码是:

 var level = function (d) {
    if (value(d) > median + stdev) {
        return 1;
    } else if (value(d) > median) {
        return 2;
    } else if (value(d) > median - stdev) {
        return 3;
    } else {
        return 4;
    }
 };

有更好的方法吗?

推荐答案

当然多次调用 value(d)是你的事可以避免。

Of course calling value(d) multiple times is something you can avoid.

你也可以使用对称性

  var level = function (d) {
    //
    //               -std    median  +std
    // ----------------|-------|-------|------------------
    // 4444444444444444 3333333 2222222 111111111111111111
    //
    var i = Math.floor((median - value(d)) / stddev) + 3;
    return Math.max(1, Math.min(4, i));
  };

对于一个真正的项目可能不是一个好主意但是...我没有测试,但我不会不要惊讶地发现这个代码比你问题中的原始代码慢,并且我发现它很难维护。

Probably not a good idea for a real project however... I didn't test but I wouldn't be surprised to find this code slower than the original in your question and for sure I find it harder to maintain.

请注意,不包括一次性一次性脚本通常代码写入一次并多次读取(用于维护,如改进或调试),因此更容易阅读通常比更容易编写更重要。

Note that excluding one-shot throwaway scripts normally code is written once and read many times (for maintenance like improvements or debugging), thus "easier to read" is normally much more important than "easier to write".

更短的意思是更容易阅读是一件好事,当它开始意味着更难阅读时它不是。

When shorter means "easier to read" is a good thing, when it starts meaning "harder to read" it's not.

这篇关于缩短Javascript if-else结构的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆