Heim  >  Artikel  >  Web-Frontend  >  JS einfache Implementierungsmethode zur Berechnung des Sternzeichens basierend auf Geburtstagsmonat und -datum

JS einfache Implementierungsmethode zur Berechnung des Sternzeichens basierend auf Geburtstagsmonat und -datum

高洛峰
高洛峰Original
2016-12-05 13:31:022438Durchsuche

Das Beispiel in diesem Artikel beschreibt die einfache Implementierungsmethode zur Berechnung des Sternzeichens basierend auf dem Geburtstagsmonat und -datum mithilfe von JS. Ich möchte es als Referenz mit Ihnen teilen:

Ich habe ein von jemand anderem geschriebenes JS-Skript gesehen, das zu lang war, um es zu lesen .

Ich denke, diese Funktion sollte prägnant genug sein:)

Übergeben Sie Parameter: Monat [int] 1~12; Tag [int] 1~31.

// 根据生日的月份和日期,计算星座。
function getAstro(month,day){
  var s="魔羯水瓶双鱼牡羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯";
  var arr=[20,19,21,21,21,22,23,23,23,23,22,22];
  return s.substr(month*2-(day<arr[month-1]?2:0),2);
}

Wenn Sie im Internet nach „Datumskonstellationsfunktion“ suchen, außer meinem oder meinem erneut geposteten Code, handelt es sich bei fast allen um lange Codes. Ich fürchte, ich kann keinen prägnanteren Code als den oben genannten finden.

Die oben genannten drei Codezeilen können jedoch noch weiter optimiert und verbessert werden:

// 根据生日的月份和日期,计算星座。
function getAstro(m,d){
  return "魔羯水瓶双鱼牡羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯".substr(m*2-(d<"102223444433".charAt(m-1)- -19)*2,2);
}

Ist das nicht cool, nur eine Zeile Der Code wurde weitestgehend kompiliert und optimiert.

Oben werden eine Substr-Funktion und eine charAt-Funktion verwendet. Wenn IE nicht berücksichtigt wird, kann .charAt(m-1) sogar zu [m-1] vereinfacht werden.

Wenn ja Die Konstellation muss nicht ausgegeben werden. Der Name erfordert nur den numerischen Index der Konstellation und die vorangehende Zeichenfolge kann wie folgt weggelassen werden:

// 根据生日的月份和日期,计算星座。
function getAstro(m,d){
  return m-(d<"102223444433".charAt(m-1)- -19);  //输出0~12的数字,0表示摩羯,1表示水瓶,依此类推,...,11是射手,12是摩羯。
}

Schreiben Sie unten einen Testcode:

// 根据生日的月份和日期,计算星座。
function getAstro(m,d){
  return "魔羯水瓶双鱼牡羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯".substr(m*2-(d<"102223444433".charAt(m-1)- -19)*2,2);
}
//下面写一个测试函数
function test(m,d){
document.writeln(m+"月"+d+"日 "+getAstro(m,d));
}
//测试
test(12,21); //输出: 12月21日 射手
test(12,22); //输出: 12月22日 魔羯
test(1,1);   //输出: 1月1日 魔羯
test(2,18);  //输出: 2月18日 水瓶
test(2,19);  //输出: 2月19日 双鱼

Im Anhang finden Sie den Datumsvergleich der zwölf Sternzeichen:

Steinbock (12 /22 - 1/19), Sternzeichen Wassermann (1/20 - 2/18), Fische (2/19 - 3/20), Widder (3/21 - 4/20),
Stier (4/ 21 – 5/20), Zwillinge (5/21 – 6/21), Krebs (6/22 – 7/22), Löwe (7/23 – 8/22),
Jungfrau (8/23 – 9 /22), Waage (9/23 - 10/22), Skorpion (10/23 - 11/21), Schütze (11/22 - 12/21)


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn