[英]Is there a more efficient way to write this function?
function month(num) {
if (num == 1) {
return "January";
} else if (num == 2) {
return "Feburary";
} else if (num == 3) {
return "March";
} else if (num == 4) {
return "April";
} else if (num == 5) {
return "May";
} else if (num == 6) {
return "June";
} else if (num == 7) {
return "July";
} else if (num == 8) {
return "August";
} else if (num == 9) {
return "September";
} else if (num == 10) {
return "October";
} else if (num == 11) {
return "November";
} else if (num == 12) {
return "December";
} else {
return false;
}
}
jQuery的/的JavaScript。
是的,使用月份編號作為字符串數組(月份名稱)的索引。
function month(num) {
if (num < 1 || num > 12 ) { return false; }
var months = ["January","Feburary","March","April","May","June","July","August","September","October","November","December"];
return months[num-1]
}
或者,你可以做錯誤的方式:
function month(num) {
return new Date(0,num-1).toLocaleDateString().split(" ")[1];
}
看它有多短! :)
唉,這種情況很有可能會在各種瀏覽器和國家中爆發。 或者,它可能會自動為您翻譯月份名稱。
無論如何,不要這樣做。
別客氣。
var month = function(n){
return ["January", "February", "March",
"April", "May", "June", "July",
"August", "September", "October",
"November", "December"][n-1]||false;
};
alert(month(3));
這是一個如何使用模塊模式進行的示例(因為這就是所有酷孩子最近所做的事情):
var MonthModule = (function(){
var MonthsArray = [
"January", "February", "March",
"April", "May", "June", "July",
"August", "September", "October",
"November", "December"
];
var MonthsEnum = {
"January" : 1, "February" : 2, "March" : 3,
"April" : 4, "May" : 5, "June" : 6,
"July" : 7, "August" : 8, "September" : 9,
"October" : 10, "November" : 11, "December" : 12
};
var getMonthFromNumber = function(n){
return MonthsArray[n-1]||false;
};
var getMonthFromName = function(s){
return MonthsEnum[s]||false;
};
return {
getMonthFromNumber : getMonthFromNumber,
getMonthFromName : getMonthFromName
};
}());
alert(MonthModule.getMonthFromNumber(5));
alert(MonthModule.getMonthFromName("February"));
我有一段時間沒有觸及Javascript,所以語法可能很糟糕,但我很確定這應該有效。
my.namespace.MonthEnum = {
JANUARY : { value: 1, name: "January" },
FEBRUARY : { value: 2, name: "February" },
MARCH : { value: 3, name: "March" },
APRIL : { value: 4, name: "April" },
MAY : { value: 5, name: "May" },
JUNE : { value: 6, name: "June" },
JULY : { value: 7, name: "July" },
AUGUST : { value: 8, name: "August" },
SEPTEMBER : { value: 9, name: "September" },
OCTOBER : { value: 10, name: "October" },
NOVEMBER : { value: 11, name: "November" },
DECEMBER : { value: 12, name: "December" },
}
function month(num) {
var months = my.namespace.MonthEnum;
for (var month in months) {
if (month.value == num)
return month.name;
}
return false;
}
所有答案直接/間接暗示1解決方案 - “HASH”
你需要建立一個“HASH”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.