Die Methode
1、 indexOf
hat zwei Nachteile: Sie ist nicht semantisch genug. Ihre Bedeutung besteht darin, die erste Vorkommensposition des Parameterwerts zu finden zu vergleichen, um zu sehen, ob es nicht auftritt. Es ist gleich -1
, was nicht intuitiv genug ist, um es auszudrücken. Zweitens wird intern der strikte Gleichheitsoperator (===
) zur Beurteilung verwendet, was zu einer Fehleinschätzung von NaN
führt. Die Methode
NaN!=NaN //ES5[NaN].indexOf(NaN)// -1 //ES6[1, 2, NaN].includes(NaN) // true
2、 fill
kann auch den zweiten und dritten Parameter akzeptieren, mit denen die Start- und Endpositionen der Füllung angegeben werden.
Wenn der ausgefüllte Typ ein Objekt ist, ist das zugewiesene Objekt dieselbe Speicheradresse und nicht das Deep-Copy-Objekt.
let arr = new Array(3).fill({name: "Mike"});arr[0].name = "Ben"; arr// [{name: "Ben"}, {name: "Ben"}, {name: "Ben"}]let arr = new Array(3).fill([]); arr[0].push(5);arr// [[5], [5], [5]]
3. Die find
-Methode der -Array-Instanz wird verwendet Finden Sie die ersten Array-Mitglieder, die die Kriterien erfüllen. Sein Parameter ist eine Rückruffunktion, und alle Array-Mitglieder führen die Rückruffunktion nacheinander aus, bis das erste Mitglied mit dem Rückgabewert true
gefunden wird, und geben dann dieses Mitglied zurück. Wenn keine berechtigten Mitglieder vorhanden sind, wird undefined
zurückgegeben. Die Verwendung der -Methode der findIndex
-Array-Instanz ist der find
-Methode sehr ähnlich und gibt die Position des ersten geeigneten Array-Mitglieds zurück, falls alle Mitglieder Wenn keine der Bedingungen erfüllt ist, wird -1
zurückgegeben. Beide Methoden können einen zweiten Parameter akzeptieren, nämlich das this
-Objekt, das zum Binden der Rückruffunktion verwendet wird.
4. Die copyWithin
-Methode der -Array-Instanz kopiert das Mitglied an der angegebenen Position auf andere Mitglieder innerhalb des aktuelle Array-Position (überschreibt das ursprüngliche Mitglied) und gibt dann das aktuelle Array zurück. Mit anderen Worten: Durch die Verwendung dieser Methode wird das aktuelle Array geändert.
它接受三个参数。
target(必需):从该位置开始替换数据。如果为负值,表示倒数。
start(可选):从该位置开始读取数据,默认为 0。如果为负值,表示倒数。
end(可选):到该位置前停止读取数据,默认等于数组长度。如果为负值,表示倒数。
[1, 2, 3, 4, 5].copyWithin(0, 2, 4)// [3, 4, 3, 4, 5]
4、Array.of
基本上可以用来替代Array()
或new Array()
,并且不存在由于参数不同而导致的重载。它的行为非常统一。
//ES6Array.of() // []Array.of(undefined) // [undefined]Array.of(1) // [1]Array.of(1, 2) // [1, 2]//ES5Array() // []Array(3) // [, , ,]Array(3, 11, 8) // [3, 11, 8]
Array.of
方法可以用下面的代码模拟实现。
function ArrayOf(){ return [].slice.call(arguments);}
相关推荐:
Das obige ist der detaillierte Inhalt vonZusammenfassung und Weitergabe des Wissens über JS-Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!