Le contenu de cet article concerne l'analyse de la méthode indexOf dans les tableaux JS (avec des exemples). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Au cours des deux derniers jours, j'ai aidé un ami à travailler sur un projet à la maison. La méthode indexOf du tableau a été utilisée dans le projet, et j'ai trouvé un article qui me semblait très bien. en passant pour éviter que le lien ne soit perdu.
Je pense que tout le monde connaît indexOf. Il est particulièrement couramment utilisé pour juger si une chaîne contient des sous-chaînes. C'est un outil utile pour les étudiants qui ne sont pas familiers avec les expressions régulières. Cet article utilise un exemple pour parler de la méthode indexOf basée sur un problème que j'ai rencontré récemment. Cet article est une accumulation de petits points de connaissances et n'est pas un sujet de discussion approfondie. Par conséquent, le deuxième paramètre de indexOf() n'est pas expliqué ici. Je pense que tout le monde connaît le rôle du deuxième paramètre.
Utilisation du type String
Revoyez l'utilisation de la chaîne bien connue, par exemple
let str = 'orange'; str.indexOf('o'); //0 str.indexOf('n'); //3 str.indexOf('c'); //-1
Ici, 0 et 3 sont o respectivement et le position où n apparaît dans la chaîne. L'indice de départ est 0. Et -1 signifie aucune correspondance.
Quelqu'un m'a demandé un jour pourquoi c'était -1 au lieu de null
ou undefined
. Demandez à la personne qui a établi les règles ! Un air d'impuissance.
Tout le monde ne voit rien d'intéressant ici, ne vous inquiétez pas, voici un autre exemple
let numStr = '2016'; numStr.indexOf('2'); //0 numStr.indexOf(2); //0
La petite chose que vous voyez ici est que indexOf fera une simple conversion de type, convertira le nombre en String '2' puis exécutez .
Utilisation du type Number
Vous vous demandez peut-être si le type number a une méthode indexOf car il effectuera une conversion implicite ! Laissez-moi vous dire clairement que non, dans l'exemple ci-dessus
let num = 2016; num.indexOf(2); //Uncaught TypeError: num.indexOf is not a function
, faut-il utiliser la méthode indexOf sur le type number
? Convertissez-le ensuite en chaîne, puis écrivez
//二逼青年的写法 num = '2016'; num.indexOf(2); //0 //普通青年的写法 num.toString().indexOf(2); //0 //文艺青年的写法 ('' + num).indexOf(2); //0
dans l'exemple ci-dessus. La première façon d'écrire est simple et directe, et elle n'est pas impossible pour les nombres plus courts connus. Mais que devons-nous faire lorsque les num
variables changent pour différentes données ?
La deuxième façon d'écrire est la plus couramment utilisée, mais elle est un peu plus longue que la troisième façon d'écrire. Haha, en fait, les deux vont bien. Les gens obsédés par le code préfèrent le troisième √ .
Utilisation du type tableau
Tout le monde remonte le moral, le grand patron arrive.
Tout le monde connaît les méthodes de tableau, mais ils ignorent que les tableaux ont la méthode indexOf (mon sentiment personnel).
Parlez simplement sans pratiquer. Quels sont les problèmes que vous avez rencontrés ? Quels sont les points clés auxquels il faut prêter attention ?
let arr = ['orange', '2016', '2016']; arr.indexOf('orange'); //0 arr.indexOf('o'); //-1 arr.indexOf('2016'); //1 arr.indexOf(2016); //-1
L’exemple n’est pas détaillé ici. Quatre cas d’usage suffisent à illustrer la problématique.
arr.indexOf(‘orange')
Sortie 0 car « orange » est le 0ème élément du tableau et l'indice est mis en correspondance et renvoyé. arr.indexOf(‘o')
Sorties -1 car cette méthode n'effectue pas à nouveau la correspondance indexOf élément par élément. arr.indexOf(‘2016')
Sortie 1 Parce que cette méthode renvoie la liste suivante du premier élément du tableau depuis le début de la correspondance jusqu'à ce que la correspondance soit atteinte, plutôt que de renvoyer les indices de toutes les correspondances. arr.indexOf(2016)
Sortie -1 Remarque : Aucune conversion de type implicite ne sera effectuée ici.
Maintenant que le piège a été découvert, autant aller au fond des choses. Rendez-vous sur le site officiel de MDN pour le savoir. Les amis intéressés par ce sujet peuvent accéder directement à Array.prototype.indexOf().
Pour ceux qui veulent juste en savoir plus, voici la description officielle.
indexOf() compare searchElement aux éléments du Array en utilisant une égalité stricte (la même méthode utilisée par l'opérateur === ou triple-equals).
C'est clair en un coup d'œil, utilisé ici est strictement égal à (===) . Veuillez faire plus attention lorsque vous portez des jugements similaires. Ne commettez pas l’erreur de penser que les nombres seront convertis en chaînes et que les chaînes ne seront pas converties en nombres.
Résumé
Ce qui précède est l'intégralité du contenu de cet article. J'espère que le contenu de cet article pourra apporter de l'aide aux études ou au travail de chacun si vous en avez. questions, s'il vous plaît Vous pouvez laisser des messages pour communiquer.
String : indexOf effectuera une conversion de type sur le nombre 0 et le convertira en chaîne '0'.
Numéro : Il n'y a pas de méthode indexOf. Besoin de convertir le type numérique en chaîne. Il existe trois méthodes. Chaîne directe, chaîne toString, concaténation de chaînes.
Array : les tableaux ont également la méthode indexOf, mais lors du jugement de type, l'égalité stricte est utilisée, c'est-à-dire ===.
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!