我有两个变量 clickDay 和 clickDay1,如果我用两个 switch 语法编写代码,它可以正常工作。但我不知道如何减少到一种 switch 语法。
这是我的原始代码
let day;
let day1;
switch (clickDay) {
case 'monday':
day = 'mon';
break;
case 'Tuesday':
day = 'tue';
break;
case 'Wednesday':
day = 'wed';
break;
case 'Thursday':
day = 'tur';
break;
case 'Friday':
day = 'fri';
break;
}
switch (clickDay1) {
case 'monday':
day = 'mon';
break;
case 'Tuesday':
day = 'tue';
break;
case 'Wednesday':
day = 'wed';
break;
case 'Thursday':
day = 'tur';
break;
case 'Friday':
day = 'fri';
break;
}
最佳答案
使用一个对象,其键是全天,值是缩写版本。然后,要确定 day
和 day1
,只需查找对象上的 clickDay
或 clickDay1
:
const days = {
monday: 'mon', // should the "m" be capitalized?
Tuesday: 'tue',
Wednesday: 'wed',
Thursday: 'tur', // should this be `thu`?
Friday: 'fri',
};
const day = days[clickDay];
const day1 = days[clickDay1];
请注意,如果 clickDay
或 clickDay1
变量不包含对象中的全日名称之一。
如果您不得不出于某种原因使用详细的switch
语句(不推荐),则必须将其放入函数中:
function getDay(fullDay) {
let day;
switch (fullDay) {
case 'monday':
day = 'mon';
break;
case 'Tuesday':
day = 'tue';
break;
case 'Wednesday':
day = 'wed';
break;
case 'Thursday':
day = 'tur';
break;
case 'Friday':
day = 'fri';
break;
}
return day;
}
const day = getDay(clickDay);
const day1 = getDay(clickDay1);
但在 99% 的情况下,对象是比 switch
更好的选择。
关于javascript - 如何减少 switch 语法的迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53799528/