Heim  >  Artikel  >  Web-Frontend  >  Analyse der indexOf-Methode im JS-Array (mit Beispielen)

Analyse der indexOf-Methode im JS-Array (mit Beispielen)

不言
不言nach vorne
2018-11-15 17:48:222998Durchsuche

Der Inhalt dieses Artikels befasst sich mit der Analyse der indexOf-Methode in JS-Arrays (mit Beispielen). Ich hoffe, dass er für Sie hilfreich ist.

In den letzten zwei Tagen habe ich einem Freund bei der Arbeit an einem Projekt zu Hause geholfen. Die indexOf-Methode des Arrays wurde in dem Projekt verwendet, und ich habe einen Artikel gefunden, der sich sehr gut anfühlte Übrigens, um zu verhindern, dass der Link verloren geht.

Ich glaube, jeder kennt indexOf. Es wird besonders häufig verwendet, wenn es darum geht, zu beurteilen, ob eine Zeichenfolge Teilzeichenfolgen enthält. Es ist ein nützliches Werkzeug für Schüler, die mit regulären Ausdrücken nicht vertraut sind. In diesem Artikel wird anhand eines Beispiels über die indexOf-Methode gesprochen, basierend auf einem Problem, auf das ich kürzlich gestoßen bin. Dieser Artikel ist eine Ansammlung kleiner Wissenspunkte und kein Thema für eine ausführliche Diskussion. Daher wird der zweite Parameter von indexOf () hier meiner Meinung nach nicht erklärt.

Verwendung des String-Typs

Sehen Sie sich zum Beispiel die bekannte String-Verwendung an

let str = 'orange';
 
str.indexOf('o'); //0
str.indexOf('n'); //3
str.indexOf('c'); //-1

Hier sind 0 und 3 o bzw. n Die Position an der es in der Zeichenfolge vorkommt. Der Startindex ist 0. Und -1 bedeutet keine Übereinstimmung.
Jemand hat mich einmal gefragt, warum es -1 statt null oder undefined sei. Fragen Sie die Person, die die Regeln aufgestellt hat! Ein Blick der Hilflosigkeit.
Jeder sieht hier nichts Interessantes, keine Sorge, hier ist ein weiteres Beispiel

let numStr = '2016';
 
numStr.indexOf('2'); //0
numStr.indexOf(2); //0

Das Kleine, was Sie hier sehen, ist, dass indexOf eine einfache Typkonvertierung durchführt, Zahlen in Zeichenfolgen „2“ umwandelt. und dann ausführen.

Verwendung des Zahlentyps

Sie fragen sich vielleicht, ob der Zahlentyp eine indexOf-Methode hat, weil diese eine implizite Konvertierung durchführt! Lassen Sie mich Ihnen klar sagen: Nein, im obigen Beispiel

let num = 2016;
 
num.indexOf(2); //Uncaught TypeError: num.indexOf is not a function

müssen Sie die indexOf-Methode für den Typ number verwenden? Wandeln Sie es dann in eine Zeichenfolge um und schreiben Sie dann im obigen Beispiel

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

. Die erste Schreibweise ist einfach und direkt und für bekannte kürzere Zahlen nicht unmöglich. Aber was sollen wir tun, wenn sich num Variablen für verschiedene Daten ändern?

Die zweite Schreibweise wird am häufigsten verwendet, ist aber etwas länger als die dritte Schreibweise. Haha, eigentlich sind beide in Ordnung. Leute, die von Code besessen sind, bevorzugen den dritten √ .

Verwendung des Array-Typs

Alles gut, der große Boss kommt.
Jeder ist mit Array-Methoden vertraut, aber sie ignorieren, dass Arrays die indexOf-Methode haben (mein persönliches Gefühl).
Einfach reden, ohne zu üben. Auf welche Probleme sind Sie gestoßen?

let arr = ['orange', '2016', '2016'];
 
arr.indexOf('orange'); //0
arr.indexOf('o'); //-1
 
arr.indexOf('2016'); //1
arr.indexOf(2016); //-1

Das Beispiel wird hier nicht im Detail aufgeschlüsselt. Vier Anwendungsfälle reichen aus, um das Problem zu veranschaulichen.

arr.indexOf(‘orange') Gibt 0 aus, da „orange“ das 0. Element des Arrays ist und der Index abgeglichen und zurückgegeben wird.
arr.indexOf(‘o') Gibt -1 aus, da diese Methode den indexOf-Abgleich nicht erneut auf Elementbasis durchführt.
arr.indexOf(‘2016') Ausgabe 1 Da diese Methode die folgende Liste des ersten Array-Elements vom Beginn der Übereinstimmung bis zum Erreichen der Übereinstimmung zurückgibt, anstatt die Indizes aller Übereinstimmungen zurückzugeben.
arr.indexOf(2016) Ausgabe -1 Hinweis: Hier wird keine implizite Typkonvertierung durchgeführt.

Nachdem die Falle entdeckt wurde, können wir ihr genauso gut auf den Grund gehen. Besuchen Sie die offizielle MDN-Website, um es herauszufinden. Freunde, die sich für dieses Thema interessieren, können direkt zu Array.prototype.indexOf() springen.

Für alle, die einfach mehr wissen wollen, hier ist die offizielle Beschreibung.

indexOf() vergleicht searchElement mit Elementen des Arrays unter Verwendung strikter Gleichheit (dieselbe Methode, die vom ===- oder Triple-Equals-Operator verwendet wird).

Es ist auf einen Blick klar, wird hier verwendet und ist genau gleich (===) . Seien Sie bitte aufmerksamer, wenn Sie ähnliche Urteile fällen. Machen Sie nicht den Fehler zu glauben, dass Zahlen in Zeichenfolgen umgewandelt werden und Zeichenfolgen nicht in Zahlen.

Zusammenfassung

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels jedem beim Lernen oder bei der Arbeit helfen kann Fragen, bitte Sie können Nachrichten hinterlassen, um zu kommunizieren.

  • String: indexOf führt eine Typkonvertierung für die Zahl 0 durch und konvertiert sie in die Zeichenfolge „0“.

  • Nummer: Es gibt keine indexOf-Methode. Der numerische Typ muss in einen String konvertiert werden. Es gibt drei Methoden. Direkter String, String toString, String-Verkettung.

  • Array: Arrays haben auch die indexOf-Methode, aber bei der Typbeurteilung wird strikte Gleichheit verwendet, d. h. ===.

Das obige ist der detaillierte Inhalt vonAnalyse der indexOf-Methode im JS-Array (mit Beispielen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:https://segmentfault.com/a/1190000017001710. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen