6.11 Trier un tableau
De retour à notre tableau de nombres, dans cette vidéo, je vais changer l'ordre de ces nombres afin qu'ils ne soient pas triés, puis je vous dirai comment les trier. Changeons-les donc en 2, 3, 1 et supprimons ce 1 ici, Maintenant, comment pouvons-nous trier ce tableau? Vous avez cette méthode appelée sort et ce qu'elle fait, c'est qu'elle convertit chaque élément ici en chaîne, puis trie les éléments du tableau. Alors, jetons un œil, donc console. Log de numbers, voici notre tableau de nombres trié. Il existe une autre méthode, souvent associée à la méthode de tri, c'est la méthode inverse. Et avec cela, nous pouvons inverser l'ordre ou les éléments d'un tableau. Donc, numbers. reverse enregistrons-le sur la console une fois de plus, nous avons 3, 2, 1. Cette méthode de tri est donc assez utile. Il est très facile à utiliser lorsque vous avez des nombres et des chaînes dans un tableau. Mais lorsque vous avez des objets comme des objets de cours, cela ne fonctionne pas par défaut, vous devez faire un travail supplémentaire. Alors, je vais supprimer ce code ici et définir un autre tableau. appelés Cours, ici, je vais ajouter deux objets de cours avec un ID de 1 et le name, disons Node. js. Et un autre objet de cours avec id2, et pour name JavaScript. Supposons maintenant que vous souhaitiez trier ce tableau par nom de cours. Donc, JavaScript devrait venir avant le Node. js. Alors regardez si j'appelle cours. sort, puis on loge sur la console, rien ne va se passer. Vous pouvez voir que Node arrive toujours en premier. Alors, comment pouvons-nous résoudre ce problème? Cette méthode de tri prend éventuellement un argument et c'est une fonction qui est utilisée pour la comparaison. Lorsqu'on appelle la méthode de tri, cette méthode obtient deux objets dans ce tableau, comme a et b, et les compare. Maintenant, s'ils sont dans le bon ordre, il passera aux éléments suivants, sinon il se réorganisera. Donc, ici, nous devons passer une fonction, à titre de comparaison, cette fonction devrait prendre deux paramètres, nous pouvons les appeler a et b, ou premier et second, cela n'a pas vraiment d'importance, car a et b sont assez explicites ici. Maintenant, dans cette fonction, si a est inférieur à b, nous devons retourner moins 1, si a est supérieur à b, nous devons retourner 1, et s'ils sont égaux, nous retournons 0. Donc, pour implémenter cela, vous pouvez écrire comme ceci. If a. name, c'est notre premier cours est inférieur à b.name, nous retournons moins 1, Maintenant, la deuxième condition. Si a.name est supérieur à b. name, nous retournons 1, sinon nous retournons 0. notez qu'ici je n'utilise pas de else if, Car si la première condition est vraie, Avec cette déclaration de retour, nous allons sortir de cette fonction. Le contrôle ne se déplacera donc jamais à ce point. Il n'est donc pas vraiment nécessaire d'utiliser le mot-clé else. Alors maintenant, exécutons ce code une fois de plus, enregistrons les modifications, inspectons ce tableau, nous pouvons voir que JavaScript est en premier. Cependant, si je change ce j majuscule en j minuscule et enregistre les modifications, voyons ce qui se passe. Cette fois, Node vient en premier, alors que se passe-t-il ici? Eh bien, chaque caractère d'un ordinateur est représenté en interne à l'aide d'un nombre. Laissez-moi vous montrer cela en détail. Alors ouvrez Google et recherchez table ascii. C'est asc avec deux i. on va ouvrir ce lien, donc sur ce tableau, vous pouvez voir la représentation numérique de chaque caractère. Donc, regardons le j minuscule, sa représentation numérique est à 106, et n qui est utilisé pour notre cours est à 78. Nous pouvons voir que 78 est inférieur à 106, c'est pourquoi notre cours Node commençant par le N majuscule est arrivé en premier. Maintenant pour résoudre. ce problème, nous devons exclure la sensibilité à la casse lors de la comparaison de ces noms. Donc, nous pouvons faire quelque chose comme ça, vous pouvez déclarer deux constantes, disons nameA, et le définir sur A. Name. toUpperCase. Donc, quel que soit le nom du premier cours, nous allons le convertir en majuscules, et nous allons faire de même avec le deuxième cours. je vais appeler la deuxième constante, name,B et le définir sur b. Name. toUpperCase. Maintenant, nous avons deux string toUpperCase Nous pouvons les comparer. Tenez également compte du fait que nous pourrions appeler ici tolowercase au lieu de touppercase. C'est parfaitement valable, mais ce qui est important, c'est que ces deux noms doivent être en minuscules ou en majuscules. enfin, nous devons remplacer les instances de a. name, avec name a. Je vais donc sélectionner a. name, et je vais appuyer Sur contrôle d. Nous avons ce deuxième curseur ici, comme vous pouvez le voir, maintenant nous pouvons le supprimer et le remplacer par nameA. Une fois de plus, je vais remplacer b.name par name b, enregistrez les modifications maintenant, notre algorithme de tri devrait fonctionner correctement. JavaScript est donc venu en premier. Voilà pour cette vidéo sur comment trier un tableau en JavaScript, on se retrouve pour une toute prochaine video.