Heim  >  Artikel  >  Web-Frontend  >  Tägliche Code-War-Übungen

Tägliche Code-War-Übungen

巴扎黑
巴扎黑Original
2017-06-23 13:56:221162Durchsuche

Anweisung:

x Einfach, geben Sie bei einer gegebenen Wortfolge die Länge des/der kürzesten Worts/Wörter zurück.

Die Zeichenkette wird niemals leer sein und Sie müssen dies nicht berücksichtigen verschiedene Datentypen.

Laut Beschreibung gibt es keine Notwendigkeit zu beurteilen, ob es leer ist oder vom Datentyp, daher kann ich gerne die Länge der kürzesten Schriftart in einem Absatz schreiben

Zuerst habe ich so geschrieben:

1 function findShort(s){2   var arr = s.split(' ').map(function(t){return t.length});3   return Math.min.apply(null,arr);4 }

Hier verwenden wir hauptsächlich die Code-Schreibmethode vor ES6. Es gibt 4 Wissenspunkte:

1, string.split(' ')

Die Methode split() wird verwendet, um einen String in ein String-Array aufzuteilen. Diese Methode ist einfach und leicht zu verstehen, daher werde ich nicht auf Details eingehen.

2, Array.map()

Die Methode „map()“ erstellt ein neues Array. Sie ruft die Rückruffunktion einmal auf, damit jedes Element im ursprünglichen Array ausgeführt wird Jedes Mal bildet der zurückgegebene Wert ein neues Array.

Referenzlink: Bitte hier klicken

3, Math.min()

Die kleinste Zahl unter den angegebenen Werten. Wenn ein Parameter nicht in einen numerischen Wert konvertiert werden kann, wird NaN zurückgegeben.

Referenzlink: Bitte hier klicken

3. apply()

Beim Aufruf einer vorhandenen Funktion können Sie ein dieses Objekt dafür angeben. Dies bezieht sich auf das aktuelle Objekt, das das Objekt ist, das diese Funktion aufruft. Mit apply können Sie diese Methode einmal schreiben und sie dann in ein anderes Objekt vererben, ohne die Methode wiederholt in das neue Objekt schreiben zu müssen.

Referenzlink: Bitte klicken Sie hier

Später habe ich auf die Lösungen anderer Leute verwiesen. Es gibt viele gute Leute in Codewar, die die Funktion in einer Zeile schreiben können 🎜>

1 function findShort(s){2   return Math.min(...s.split(' ').map(w=>w.length));3 }
Hier verwenden wir hauptsächlich zwei neue Wissenspunkte von ES6, obwohl ich ES6 schon einmal studiert habe, da ich keine praktische Erfahrung habe, werde ich es hier überprüfen:

1, (...) ist der Spread-Operator, der hier die Apply-Methode des Arrays ersetzen kann und zum Erweitern des Arrays und zum Konvertieren des Arrays in Parameter der Funktion verwendet wird.

// ES5的写法Math.min.apply(null, [14, 3, 77])// ES6的写法Math.min(...[14, 3, 77])// 等同于Math.min(14, 3, 77);
Referenzlink: Bitte hier klicken

2, Pfeilfunktion (=>)

var f = v => v;//等同于var f = function(v) {  return v;
};//如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。var f = () => 5;// 等同于var f = function () { return 5 };var sum = (num1, num2) => num1 + num2;// 等同于var sum = function(num1, num2) {  return num1 + num2;
};
Pfeilfunktionen machen Ausdrücke prägnanter.

Bitte klicken Sie hier für Details

Anhang: Codewar – die Übungsadresse dieser Übung

Das obige ist der detaillierte Inhalt vonTägliche Code-War-Übungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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