Array.prototype.includes Dieses Kapitel beschreibt das ECMAScript 2016 Feature „Array.prototype.includes“ von Domenic Denicola und Rick Waldron.
> ['a', 'b', 'c'].includes('a')
true
> ['a', 'b', 'c'].includes('d')
false
includes Die Array-Methode includes hat die folgende Signatur
Array.prototype.includes(value : any) : boolean
Sie gibt true zurück, wenn value ein Element des Empfängers (this) ist, und andernfalls false
> ['a', 'b', 'c'].includes('a')
true
> ['a', 'b', 'c'].includes('d')
false
includes ist ähnlich wie indexOf – die folgenden beiden Ausdrücke sind meist äquivalent
arr.includes(x)
arr.indexOf(x) >= 0
Der Hauptunterschied besteht darin, dass includes() NaN findet, während indexOf() dies nicht tut
> [NaN].includes(NaN)
true
> [NaN].indexOf(NaN)
-1
includes unterscheidet nicht zwischen +0 und -0 (was der Fall bei fast allen JavaScript-Operationen ist)
> [-0].includes(+0)
true
Auch Typed Arrays werden eine Methode includes() haben
let tarr = Uint8Array.of(12, 5, 3);
console.log(tarr.includes(5)); // true
includes und nicht contains?Array.prototype hinzu).includes und nicht has?has wird für Schlüssel verwendet (Map.prototype.has), includes wird für Elemente verwendet (String.prototype.includes). Die Elemente eines Sets können sowohl als Schlüssel als auch als Werte betrachtet werden, weshalb es ein Set.prototype.has gibt (und kein includes).String.prototype.includes arbeitet mit Strings, nicht mit Zeichen. Ist das inkonsistent im Vergleich zu Array.prototype.includes?includes exakt wie String includes funktionieren würde, würde es Arrays und nicht einzelne Elemente akzeptieren. Aber die beiden includes folgen dem Beispiel von indexOf; Zeichen werden als Sonderfall und Strings beliebiger Länge als allgemeiner Fall betrachtet.Array.prototype.includes (Domenic Denicola, Rick Waldron)