Die Verwendung der indexOf()-Methode in JS

Bei der Arbeit wird die Methode indexOf() immer noch sehr häufig verwendet. Lassen Sie uns diesen Wissenspunkt kurz zusammenfassen. 

Grundlegende Definition : Die Methode indexOf() gibt die Position zurück, an der ein angegebener Zeichenfolgenwert zum ersten Mal in der Zeichenfolge erscheint. Wenn er nicht gefunden wird, gibt sie -1 zurück.

- indexOf() gibt nur das erste Vorkommen einer Zeichenfolge in der angegebenen Suchreihenfolge zurück

- Funktionierende Anwendung => Wenn der abzurufende Zeichenfolgenwert nicht vorhanden ist, gibt die Methode -1 zurück

- Die Methode indexOf() unterscheidet zwischen Groß- und Kleinschreibung!

1. Grammatik

stringObject.indexOf(searchvalue,fromindex)

// 该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 searchvalue。
// 开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromindex 时)。
// 如果找到一个 searchvalue,则返回 searchvalue 的第一次出现的位置。
// stringObject 中的字符位置是从 0 开始的

2. Spezifische Anwendung der indexOf()-Methode in Arrays und Strings

Diese Methode gibt die Position eines Elements in einem String oder Array zurück.

<1> Verwendung in Objekten vom Typ String
let str = 'orange';
 
str.indexOf('o'); //0
str.indexOf('n'); //3
str.indexOf('c'); //-1  未找到返回-1

Hinweis: JavaScript-String-indexOf()-Methode 

<2> Verwendung in Objekten vom Typ Array

array.indexOf(item,start)
gibt die Position des Elements im Array zurück. Wenn es nicht abgerufen wird, wird -1 zurückgegeben.
Parameterbeschreibungselement
ist erforderlich. Das Element to find
start ist optional. Gibt den abzurufenden Speicherort an. Seine zulässigen Werte sind 0 bis stringObject.length - 1.

Um Elemente in einem Array zu finden, können Sie auch die in ES6 bereitgestellte Methode find() verwenden

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

var arr = [1,2,3];
console.log(arr.indexOf('1'));//-1 不包含 从这可以看出数组使用indexOf区分类型(type)
console.log(arr.indexOf(1));//0 包含
console.log(arr.indexOf(2));//1 包含
console.log(arr.indexOf(3));//2 包含
console.log(arr.indexOf(4));//-1 不包含

<3> Kann nicht für den Zahlentyp verwendet werden

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

Muss ich die indexOf-Methode für den Zahlentyp verwenden? Konvertieren Sie es dann in eine Zeichenfolge und schreiben Sie dann das obige Beispiel

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

3. Verwenden Sie indexOf(), um das Array zu deduplizieren

// 写法一
var newArr =  [ ];

arr.forEach(function(v){ // 使用forEach循环遍历,获取原始数组arr中的所有数值
            // 在新数组中,查找当前获取的原始数组的数值
            // newArr.indexOf(v) 执行结果如果是 -1
            // 证明在新数组中,没有这个原始数组的数据
    if(newArr.indexOf(v) === -1){
           // 将这个数据,写入到新数组中
           newArr.push(v)
    }
})
console.log( newArr );

// 写法二 
var arr = ['C','A','A','G','G','G','D']
var newArr = []

arr = arr.sort().forEach(function(n){
            if(newArr.indexOf(n) == -1){
               newArr.push(n)
            }
         })
console.log(newArr);// ["A", "C", "D", "G"]

// 写法三
var arr = ['a','c','b','d','a','b']
var arr2 = [];

for(var i = 0;i<arr.length;i++){
    if(arr2.indexOf(arr[i])<0){
       arr2.push(arr[i]);
    }
}
arr2.sort();
console.log(arr2);//["a", "b", "c", "d"]
  

Extra: sort()-Methode   sort()-Methode in JS JavaScript sort()-Methode | Anfänger-Tutorial Umfassendes Verständnis der sort()-Methode, die mit JS geliefert wird | Script Home  

Mit der Methode sort() werden die Elemente eines Arrays sortiert. Die Sortierreihenfolge kann alphabetisch oder numerisch sowie aufsteigend oder absteigend sein. Die Standardsortierreihenfolge ist alphabetisch aufsteigend.

HINWEIS: Dieser Ansatz verändert das ursprüngliche Array!

Grammatik:

arrayObject.sort(sortby); der Parameter sortby ist optional. Gibt die Sortierreihenfolge an. Muss eine Funktion sein;

Die sort()-Methode von Array konvertiert standardmäßig alle Elemente in String und sortiert sie dann nach Unicode.

sort() ändert das ursprüngliche Array und gibt das geänderte (sortierte) Array zurück.

Hinweis: Wenn diese Methode ohne Parameter aufgerufen wird, werden die Elemente im Array alphabetisch oder genauer gesagt in der Reihenfolge der Zeichenkodierung sortiert. Um dies zu erreichen, sollten die Elemente des Arrays zunächst zum Vergleich in Strings umgewandelt werden (falls erforderlich).

Wenn Sie nach anderen Kriterien sortieren möchten, müssen Sie eine Vergleichsfunktion bereitstellen, die zwei Werte vergleicht und eine Zahl zurückgibt, die die relative Reihenfolge der beiden Werte beschreibt. Die Vergleichsfunktion sollte zwei Parameter a und b haben (a stellt die nächste Vergleichsnummer der aktuellen Vergleichsnummer dar und b stellt die aktuelle Vergleichsnummer dar) :

Die Vergleichsfunktion sollte zwei Parameter a und b haben und ihr Rückgabewert ist wie folgt:

Wenn a kleiner als b ist, also a - b kleiner als Null ist, sollte a vor b im sortierten Array erscheinen, dann wird ein Wert kleiner als 0 zurückgegeben und das Array wird in aufsteigender Reihenfolge sortiert.

Wenn a gleich b ist, wird 0 zurückgegeben.

Wenn a größer als b ist, also a - b größer als Null ist, wird ein Wert größer als 0 zurückgegeben und das Array wird in absteigender Reihenfolge sortiert.

Aufsteigend

Absteigend sortieren 


4. Vergleich zwischen findIndex und indexOf des JS-Arrays

<1> findIndex()

Die Methode findIndex() gibt die Position des ersten Elements des Arrays zurück, das in einer Testbedingung (Funktion) übergeben wurde, die die Bedingung erfüllt.

Die Methode findIndex() ruft für jedes Element im Array einmal eine Funktionsausführung auf:

Wenn ein Element im Array beim Testen einer Bedingung „true“ zurückgibt, gibt findIndex() die Indexposition des Elements zurück, das die Bedingung erfüllt, und nachfolgende Werte rufen die Ausführungsfunktion nicht auf.

Wenn es kein passendes Element gibt, geben Sie -1 zurück

Hinweis: Die Funktion findIndex() wird nicht für ein leeres Array ausgeführt.

Hinweis:  findIndex() ändert nicht den ursprünglichen Wert des Arrays.

Referenzartikel : Zusammenfassung der ES6-Array-Methoden find(), findIndex() und filter() – kurzes Buch

<2> indexOf()

Die Methode indexOf() gibt die Position eines angegebenen Elements in einem Array zurück.

Diese Methode durchsucht das Array von Anfang bis Ende, um festzustellen, ob es das entsprechende Element enthält. Die Position zum Starten des Abrufs liegt am Array-Start oder am Anfang des Arrays (wenn der Startparameter nicht angegeben ist). Wenn ein Element gefunden wird, wird die Position des ersten Vorkommens des Elements zurückgegeben. Der Index der Startposition ist 0.

Gibt -1 zurück, wenn das angegebene Element nicht im Array gefunden wird.

✔ Vergleich zwischen findIndex() und indexOf() ✔

1. Die Methoden findIndex() und indexOf() werden durch Schleifendurchlauf implementiert.

2. Das Anwendungsszenario von findIndex() ist breiter als das von indexOf(). Es kann nach „größer als gleich“ und „kleiner als“ suchen. Der Ausdruck kann beiläufig geschrieben werden, indexOf kann jedoch nur auf der ersten Ebene gleiche Werte finden.

3. findIndex() entspricht eigentlich einer for-Schleife, außer dass Sie sich nicht selbst verlassen müssen, nachdem sie gefunden wurde.


Verweise

JS erweiterte reguläre verwandte Funktionen und reguläre Objekte – CSDN-Blog

Die Verwendung und Vorsichtsmaßnahmen von indexOf und die Verwendung von indexOf für Arrays

Einführung in JavaScript indexOf - Zhihu  |  Tipps zur Verwendung von indexOf in JavaScript - Script Home

Ich denke du magst

Origin blog.csdn.net/sunyctf/article/details/135269738
Empfohlen
Rangfolge