有没有比"if-else"链更短的赋值方法?



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

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 days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
var dayname = days[getDay()];
你可以

这样做:

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

这样就没有if语句了。如果day从 1 开始,到 7 结束,您可以执行以下操作:

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

你需要的是一个查找表:

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

另一种方法是使用字典

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

您可以使用以下方法

将数组定义为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];

最新更新