6.4 Recherche d'éléments (Types de Références)
Dans la dernière vidéo, je vous ai dit que la recherche de types primitives est différente de la recherche de types de référence. Voyons donc pourquoi. Je vais commencer par déclarer un nouveau tableau appelé cours, et dans ce tableau, nous allons avoir quelques objets cours. Voici donc la première avec deux propriétés, id et name, le nom n'a pas vraiment d'importance, maintenant nous pouvons dupliquer cette ligne, en maintenant les touches shift, alt et flèche du bas. Modifions donc ces valeurs, id2 et name b, et n'oubliez pas le point-virgule ici, nous avons donc deux objets de cours ici. Voyons si nous avons un cours avec le nom a dans ce tableau. La méthode includes que vous avez apprise dans la dernière vidéo ne nous aidera pas ici. Alors on fait un cours. Includes ici nous passons l'objet que nous recherchons. Alors, bien sûr avec id 1, et le name a. Maintenant, enregistrons cela sur la console. Console. log enregistrer les modifications, nous obtenons faux, la raison en est que ces deux objets. C'est l'objet que vous transmettez à la méthode includes, et l'objet que nous avons dans le tableau de cours, ce sont deux objets différents. Ils ont deux références différentes, ils sont dans deux emplacements et mémoire différents. Et dans la dernière section, vous avez appris que les objets sont des types de référence, donc lorsque nous vérifions leur égalité, les références sont vérifiées. Dans ce cas, il y a deux références différentes, c'est pourquoi nous nous obtenons false. Donc, si vous avez un tableau avec des types de référence, vous devez utiliser la méthode find. Je vais donc supprimer cette ligne, cours. Find(). Regardez maintenant le paramètre de cette méthode. Ce que nous voyons est bien trop compliqué. Ainsi, chaque fois que vous souhaitez en savoir plus sur un objet ou une fonction en JavaScript, recherchez simplement cela. javascript tableau find Ici, on va aller sur le premier lien qui provient du développeur. mozilla. org. Donc, c'est une bonne référence, ici nous pouvons trouver une bonne description de ce que fait cette méthode et un exemple très simple d'utilisation de cette méthode. Nous avons donc ici un tableau avec quelques numbers. Nous appelons la méthode find notez que comme argument de cette méthode, nous devons passer une fonction. Nous appelons cette fonction un prédicat, et nous l'utilisons pour déterminer si l'élément donné existe ou non dans un tableau. Donc, cette fonction prend un paramètre, c'est un élément de ce tableau. Et dans le corps de cette fonction, nous devons retourner un booléen. Nous avons donc ici une expression simple si cet élément est supérieur à 10, nous retournerons vrai sinon nous retournerons faux. C'est donc ce qui se passe lorsque nous appelons la méthode find et passons cette fonction. Cette fonction est exécutée une fois pour le premier élément de ce tableau. Donc, dans ce cas, 5 passera ici. 5 n'est pas supérieur à 10, nous retournerons donc faux et la recherche se poursuivra. Maintenant, cette fonction sera appelée pour le deuxième élément de ce tableau. Donc, 12 sera passé en argument à cette fonction, et comme il est supérieur à 10, nous retournerons true et la recherche s'arrêtera ici. Alors maintenant, ce que nous obtiendrons ici à la suite de l'appel de la méthode find est le premier élément qui correspond à ce critère. Donc, si vous enregistrez cette variable trouvée sur la console, nous en obtiendrons 12. Maintenant, en revanche, s'il n'y a aucun élément dans ce tableau qui correspond à ces critères, nous obtiendrons undefined. Donc, revenons à notre exemple, disons que nous voulons voir si nous avons un cours avec le nom a dans ce tableau. Nous passons donc une fonction. Ici, nous appelons cela un prédicat ou une fonction de rappel qu'on appelle une fonction call back, car la fonction est rappelée dans le cadre de la recherche d'un élément dans ce tableau. Donc, ici, nous devrions avoir un paramètre, nous pouvons appeler cet élément, ou cours, car chaque élément de ce tableau est un objet cours, il est donc préférable d'être plus explicite, ce qui rend notre code plus lisible et compréhensible. Alors, quels sont nos critères? Nous recherchons un cours avec le nom égal à a. Donc, nous renvoyons simplement cela et stockons le résultat dans un cours appelé constant. Et enfin, enregistrons cela sur la console. Voici l'objet du cours, enregistrez les modifications, et c'est le cours qui a pour nom a. Nous obtenons l'objet de cours complet que nous avons dans ce tableau. Maintenant, si je change les critères de recherche en quelque chose comme ça. xyz, évidemment, nous n'avons pas de cours avec ce nom, donc lorsque nous enregistrons les modifications, nous obtenons undefined. Voici donc notre méthode find, elle retourne le premier élément qui correspond à ce critère. Nous avons une méthode similaire appelée find index, elle fonctionne exactement de la même manière, mais au lieu de renvoyer l'objet réel, comme l'objet course, elle renverra son index. Laissez moi vous montrer cela en détail. Je veux donc changer cela pour trouver l'index, dans ce cas, nous n'avons pas de cours avec ce nom, donc, quand j'enregistre les modifications, nous devrions voir moins 1 sur la console. C'est ici. Maintenant, si je reviens à a et enregistre les modifications, nous obtenons 0, car l'index du premier élément qui correspond à ce critère est 0. Voilà pour cette vidéo, on se retrouve pour la prochaine video ou on va voir la fonction fléchés.