我正在嘗試進行數字到月份的轉換。我試圖用if陳述句來做,例如:if(num==0) {month = "January";} else if(num==1) {month = "February";}等等。有什么辦法可以縮短這一點嗎?我想應該是這樣的:if(num===[0,1,2,3,4,5]) {month = ["January", "February", "March", "April", "May", "June" }
換句話說,是否有某種方法可以將陣列與if函式一起使用,而if函式則分別通過每個陣列?順便說一下,我正在使用p5庫,如果這有什么不同的話。
uj5u.com熱心網友回復:
你可以使用switch陳述句
var num = 0;
switch (num) {
case 0:
月 = "一月"。
break;
case 1:
month = "2月"。
break;
case 2:
month = "March";
break;
case 3:
月 = "四月"。
break;
case 4:
month = "May";
break;
case 5:
month = "June";
break;
default:
day = "未知月份"。
}
閱讀更多。https://www.w3schools.com/jsref/jsref_switch.asp https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch
uj5u.com熱心網友回復:
我認為最好的解決方案是使用一個像這樣的月陣列:
const month = [
"一月"。
"二月"。
"三月"。
"四月"。
"五月"。
"六月"。
"七月"。
"八月"。
"九月"。
"十月"。
"十一月"。
"十二月"。
];
const answer = month[num];
uj5u.com熱心網友回復:
如果你的范圍在本質上是連續的,一種方法是預先制作一個查找字串,同時也是鍵和值,比如
1:JAN:2:FEB:3:MAR: etc
具有恒定寬度的性質。甚至是1:J:2:F:3:M:4:A....(我的意思是在那里輸入所有的名字是可行的,但是你將需要一些填充)。
當函式被呼叫時,使用匹配或子串函式的組合來 "切出 "你首先需要的那些,例如"4:APR:5:MAY:6:JUN:7:JUL"(當你使用單個字母,以及3-5、4-8和1-6-7重復時,你必須創造性地使用你自己的符號...或者直接使用base-12)
如果一個3個字母的前綴已經滿足了你的需要,那么做一個高速的gsub來擺脫所有的數字和分隔符,并把它們改成逗號或其他東西。
如果你選擇完整的月份,我不知道這有多大的幫助,但也許你可以通過重新編碼將9-10-11-12這些常見的后綴一次性輸入,還有1-2。5已經是它的全名了。
另一種方法是,如果你的范圍通常跨越一半以上的年份,那么即使是 "減法 "方法也可能比 "加法 "更可取--總是從所有月份拼出的完整字串開始。
而且,如果你的范圍傾向于聚集在一年的同一半,而不是跨年,那么你甚至可以將該索引鍵分成兩個,以使其更快(雖然節省很少)
。uj5u.com熱心網友回復:
有比硬編碼開關更好的方法。
。let locale = 'en-us'/span>
let month = 3 // Apr
let months = [...Array(12).keys() ] 。 map(v => new Date(2000, v) 。 toLocaleString(locale, {
月。'long')
}))
if (month[month]) {
console.log('Do something...')
}
//其他一些例子。
let result;
//
result = months[month] || 'Invalid month index'/span>
console.log('by index'/span>, result)
//
result = months[month - 1] || 'Invalid month number'/span>
console.log('by month number'/span>, result)
//
result = months.findIndex(span class="hljs-params">v => v === new Date() 。 toLocaleString(locale, { month: 'long' }))
console.log('find index by name'/span>, result)
console.log('use index to get name', months[result])
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
uj5u.com熱心網友回復:
創建一個awk定義,如下所示:
getMonth()
{
awk 'BEGIN{
months=[January, February, March, April, May, June, July, August, September, October, November, December] ;
}{
print months[$1] ;
}'
}
然后用一個呼叫來處理你的輸入
month=`echo ${digit} | getMonth `
其中digit被分配一個從1到12的值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/314481.html
標籤:
