Instruction:
x Simple, étant donné une chaîne de mots, renvoie la longueur du ou des mots les plus courts.
La chaîne ne sera jamais vide et vous n'avez pas besoin d'en tenir compte différents types de données.
Selon la description, il n'y a aucune obligation de juger si elle est vide ou le type de données, je me sens donc libre d'écrire la longueur de la police la plus courte dans un paragraphe
Au début j'étais comme ça Écrit :
1 function findShort(s){2 var arr = s.split(' ').map(function(t){return t.length});3 return Math.min.apply(null,arr);4 }
Ici, nous utilisons principalement la méthode d'écriture de code pré-ES6. Il y a 4 points de connaissances :
1, string.split(' ')
La méthode split() est utilisée pour diviser une chaîne en un tableau de chaînes. Cette méthode est simple et facile à comprendre, je n’entrerai donc pas dans les détails.
2, Array.map()
La méthode map() crée un nouveau tableau. Elle appellera la fonction de rappel une fois dans l'ordre pour chaque élément du tableau d'origine. à chaque fois La valeur renvoyée forme un nouveau tableau.
Lien de référence : Veuillez cliquer ici
3, Math.min()
Le plus petit nombre parmi les valeurs données. Si un paramètre ne peut pas être converti en valeur numérique, NaN est renvoyé.
Lien de référence : veuillez cliquer ici
3. apply()
Lorsque vous appelez une fonction existante, vous pouvez spécifier un objet this pour celle-ci. this fait référence à l'objet actuel, qui est l'objet qui appelle cette fonction. En utilisant apply, vous pouvez écrire cette méthode une fois, puis en hériter dans un autre objet, sans avoir à écrire la méthode à plusieurs reprises dans le nouvel objet.
Lien de référence : veuillez cliquer ici
Plus tard, j'ai fait référence aux solutions d'autres personnes. Il y a beaucoup de bonnes personnes dans Codewar qui peuvent écrire la fonction en une seule ligne :
<.>1 function findShort(s){2 return Math.min(...s.split(' ').map(w=>w.length));3 }
// ES5的写法Math.min.apply(null, [14, 3, 77])// ES6的写法Math.min(...[14, 3, 77])// 等同于Math.min(14, 3, 77);
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; };
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!