Maison > interface Web > js tutoriel > exercices quotidiens de guerre des codes

exercices quotidiens de guerre des codes

巴扎黑
Libérer: 2017-06-23 13:56:22
original
1208 Les gens l'ont consulté

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 }
Copier après la connexion

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 }
Copier après la connexion
Ici, nous utilisons principalement deux nouveaux points de connaissances de l'ES6 Bien que j'aie déjà étudié l'ES6, comme je n'ai aucune expérience pratique, je vais le passer en revue ici :

1, (...) est l'opérateur spread, qui peut remplacer ici la méthode apply du tableau et est utilisé pour développer le tableau et convertir le tableau en paramètres de la fonction.

// ES5的写法Math.min.apply(null, [14, 3, 77])// ES6的写法Math.min(...[14, 3, 77])// 等同于Math.min(14, 3, 77);
Copier après la connexion
Lien de référence : Veuillez cliquer ici

2, fonction flèche (=>)

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;
};
Copier après la connexion
Les fonctions fléchées rendent les expressions plus concises.

Veuillez cliquer ici pour plus de détails

Pièce jointe : codewar-l'adresse de cet exercice

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal