Maison > interface Web > js tutoriel > Parlons brièvement de la méthode indexOf dans le tableau JS

Parlons brièvement de la méthode indexOf dans le tableau JS

高洛峰
Libérer: 2017-01-14 10:38:01
original
1363 Les gens l'ont consulté

Avant-propos

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

ici 0 et 3 respectivement sont la position où o et n apparaissent 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 indéfini. 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
Copier après la connexion

Vous voyez un petit point ici, c'est que indexOf peut faire des types simples Convert , convertissez le nombre en chaîne « 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
Copier après la connexion

, devez-vous utiliser la méthode indexOf sur le type numérique ? Convertissez-le ensuite en chaîne, puis écrivez

//二逼青年的写法
num = '2016';
num.indexOf(2); //0
 
//普通青年的写法
num.toString().indexOf(2); //0
 
//文艺青年的写法
('' + num).indexOf(2); //0
Copier après la connexion

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 la variable num change 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, tout est possible. Les gens obsédés par le code préfèrent le troisième type ✅

Utiliser le type Array

Tout le monde, rassurez-vous, 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 problèmes avez-vous rencontrés ? À quoi devez-vous faire attention ?

let arr = ['orange', '2016', '2016'];
 
arr.indexOf('orange'); //0
arr.indexOf('o'); //-1
 
arr.indexOf('2016'); //1
arr.indexOf(2016); //-1
Copier après la connexion

Les exemples ne sont pas détaillés ici. Quatre cas d’usage suffisent à illustrer la problématique.

arr.indexOf('orange') génère 0 car 'orange' est le 0ème élément du tableau, et l'index est mis en correspondance et renvoyé.

arr.indexOf('o') renvoie -1 car cette méthode n'effectue pas à nouveau la correspondance indexOf élément par élément.

arr.indexOf('2016') génère 1 car cette méthode renvoie le tableau ci-dessous du premier élément du tableau depuis le début jusqu'à ce que la correspondance soit atteinte, plutôt que de renvoyer tous les indices correspondants.

arr.indexOf(2016) output -1 Remarque : Aucune conversion de type implicite ne sera effectuée ici.

Maintenant que le gouffre 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-égal).

C'est clair à un coup d'œil, ce qui est 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 être utile aux études ou au travail de chacun. Si vous avez des questions, vous pouvez partir. un message à communiquer.

Pour plus d'articles sur la méthode indexOf dans les tableaux JS, veuillez faire attention au site Web PHP 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