DateオブジェクトにはgetDayメソッドがあり、現地時間に基づいて特定の日付で曜日を返します。返品値は0〜6から、日曜日〜土曜日に対応しています
getDay0123456
日曜日の日曜日の火曜日水曜日木曜日金曜日土曜日
日付関連の要件を使用する場合、ゲッテデイまでに返された値を曜日に返送する値を変換する必要があります。つまり、「今日」の曜日は何ですか?たとえば、カレンダーコンポーネントでカレンダーを選択した後、「2014-12-22月曜日」に戻ります。
これはまだオンラインで実行されているコードです
コードコピーは次のとおりです。
/*
*日付オブジェクトに従って曜日を返します
* @param {date}日付
* @return {string}「水曜日」
*/
関数GetChineseWeekBydate(date){
var numweekday = date.getday();
if(numweekday == 0){
「日曜日」を返します。
} else if(numweekday == 1){
「月曜日」を返します。
} else if(numweekday == 2){
「火曜日」を返します。
} else if(numweekday == 3){
「水曜日」を返します。
} else if(numweekday == 4){
「木曜日」を返します。
} else if(numweekday == 5){
「金曜日」を返します。
} else if(numweekday == 6){
「土曜日」を返します。
} それ以外 {
戻る '';
}
}
このコードは、他の分岐である場合、複数の場合に審査され、曜日に戻ります。一部の学生は、スイッチを使用して最適化できると述べました。
コードコピーは次のとおりです。
/*
*日付オブジェクトに従って曜日を返します
* @param {date}日付
* @return {string}「水曜日」
*/
関数GetChineseWeekBydate(date){
var numweekday = date.getday();
switch(numweekday){
ケース0:「日曜日」を返します。
ケース1:「月曜日」を返す。
ケース2:「火曜日」を返します。
ケース3:「水曜日」を返します。
ケース4:「木曜日」を返します。
ケース5:「金曜日」を返します。
ケース6:「土曜日」を返す。
デフォルト:return '';
}
}
if/elseと比較して、コードははるかにシンプルで短くなります。誰かが統計コードを行ったほど、脳が考える時間が短くなります。したがって、「ショートコード」と「簡潔なコードの方法」を提唱し、賞賛するさまざまな人々や本が表示されます。
「コードコレクション」では、プログラミングを簡素化するためにテーブルドライバー方法の使用に言及しています
テーブル駆動型メソッド - テーブル駆動型メソッドは、論理ステートメントを使用せずにテーブルから情報を検索するプログラミングモード(IFおよびスイッチ)です。実際、論理ステートメントで選択できるものはすべて、テーブルを調べることで選択できます。簡単な場合、論理ステートメントを使用する方が簡単で簡単です。しかし、ロジックチェーンがますます複雑になるにつれて、テーブルルックアップ方法はますます魅力的になります。
上記のように、表を使用して論理ステートメントを置き換えると、JSの多くのフロントエンドエンジニアは、機能的言語の特性のいくつかを学んだため、表現でステートメントを排除するために最善を尽くしました。例えば
1。&&単一のifを交換します
コードコピーは次のとおりです。
if(a == 1){
$ .ajax(xx)
}
//->
(a == 1)&& $ .ajax(xx)
2。?:If/elseを置き換えます
コードコピーは次のとおりです。
if(a == 1){
$ .ajax(xx)
} それ以外 {
$(yy).remove()
}
//->
(a == 1)? $ .ajax(xx):$(yy).remove()
3。複数のif/elseとスイッチは、複数の「?: "に置き換えることもできます。
コードコピーは次のとおりです。
if(a == 1){
アラート(1)
} else if(a == 2){
アラート(2)
} else if(a == 3){
アラート(3)
} それ以外 {
アラート(4)
}
//->
(a == 1)
?アラート(1):( a == 2)
?アラート(2):( a == 3)
?アラート(3):アラート(4)
さらに、関数を使用して、声明を再帰的に排除することもできます。最初は私はこれらの執筆方法に夢中になっていましたが、後でそれを理解できないことがわかりました(たぶん私はまだ読んでおらず、私の脳は常にこれらを自然に文に変換しました)。最終的に、私はまだ文の使用に慣れていました。
「コードコレクション」のテーブルをJSオブジェクトに置き換えてみましょう。
コードコピーは次のとおりです。
/*
*日付オブジェクトに従って曜日を返します
* @param {date}日付
* @return {string}「水曜日」
*/
関数GetChineseWeekBydate(date){
var numweekday = date.getday();
var weekobj = {
「0」:「日曜日」、
「1」:「月曜日」、
「2」:「火曜日」、
'3': '水曜日'、
「4」:「木曜日」、
「5」:「金曜日」、
'6':「土曜日」、
};
return weekobj [numweekday] || '';
}
スイッチと比較して、多くのコードが削減されましたが、0〜6のキーがまだあります。 getDayメソッドは、JSアレイインデックスと同様に0から戻り、0から始まります。したがって、アレイを使用することは簡素化できます
コードコピーは次のとおりです。
/*
*日付オブジェクトに従って曜日を返します
* @param {date}日付
* @return {string}「水曜日」
*/
関数GetChineseWeekBydate(date){
var numweekday = date.getday();
var weekarr = ['Sunday'、 'Monday'、 'Tuesday'、 '水曜日'、「木曜日」、「金曜日」、「土曜日」];
return weekarr [numweekday] || '';
}