【问题标题】:Is there a shorter way to assign a value than with an "if-else" chain?是否有比“if-else”链更短的赋值方式?
【发布时间】:2017-06-13 15:17:29
【问题描述】:

现在,我的代码是这样的:

var day = getDay(); //A function that gets this current day of the week as integer
var dayname = "";
if (day==0) dayname = "Su";
if (day==1) dayname = "Mo";
...
if(day==6) dayname = "Sa";

它有效,但我觉得它可能会更短,像这样:

if (day == (0,1,2,3,4,5,6)) dayname = ("Su","Mo",...,"Sa");

有没有办法做到这一点?

【问题讨论】:

  • 定义一个数组var dayNames = ["Su","Mo",...,"Sa"]dayname = dayNames[getDay()] 不需要if

标签: javascript if-statement optimization


【解决方案1】:
var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
var dayname = days[getDay()];

【讨论】:

  • 谢谢!如果我必须做相反的事情(例如从字符串中获取数字)怎么办?
  • var day_number = days.indexOf(day); //day 是 'Monday' 或 'Saturday' 或其他什么 ;)
【解决方案2】:

你可以这样做:

var dayNames = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su'];
var dayName = dayNames[getDay()];

这样就没有if 声明。如果day从1开始到7结束,你可以这样做:

var dayName = dayNames[getDay() - 1];

【讨论】:

    【解决方案3】:

    你需要的是一个查找表:

    var day = getDay();
    var daysByNumber = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];
    var dayName = daysByNumber[day];
    

    【讨论】:

      【解决方案4】:

      另一种方法是使用字典

          var day = getDay();
          dict = {0: 'Monday', 1: 'Tudesday', 2: 'Wednesday', 3: 'Thursday', 4: 'Friday', 5: 'Saturday', 6: 'Sunday'}
          dayname=dict[day]
          print(dayname)
      

      【讨论】:

        【解决方案5】:

        您可以使用以下方法

        将数组定义为var days = ['Su', 'Mo', 'Tue', 'Thu', 'Fri', 'Sat'];,并使用索引0-6 选择特定的日期。

        所以,如果getDay(); 返回0,那么它会将sun 存储在dayname

        var day = getDay(); //A function that gets this current day of the week as integer
        var days = ['Su', 'Mo', 'Tue', 'Thu', 'Fri', 'Sat'];
        var dayname = days[day];
        

        【讨论】:

          猜你喜欢
          • 2017-05-12
          • 1970-01-01
          • 2013-05-18
          • 1970-01-01
          • 1970-01-01
          • 2012-11-26
          • 1970-01-01
          • 1970-01-01
          • 2012-10-03
          相关资源
          最近更新 更多