2017-06-13 3 views
0

は今、私のコードは次のようなものです:"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"); 

がそれを行うための方法があります?

+3

配列を定義する 'var dayNames = [day] = dayNames [getDay()] 'は' if'を必要としません – Satpal

答えて

2
var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; 
var dayname = days[getDay()]; 
+0

ありがとう!反対にする必要がある場合(例:文字列から数値を取得する場合)はどうなりますか? – InformaGiovani

+0

'var day_number = days.indexOf(day);' //日が 'Monday'や 'Saturday'などの場合) – guest

0

あなたはこれを行うことができます:

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

この方法にはifの文はありません。 dayは1から始まり、7で終了した場合は、行うことができます:

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

あなたは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]; 
0

を格納する場合は、ルックアップテーブルである:これを行うの

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

他の方法は、辞書を使用することです

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