Heim  >  Artikel  >  Web-Frontend  >  Zusammenfassung verschiedener Beispiele für Array-Methoden in Javascript

Zusammenfassung verschiedener Beispiele für Array-Methoden in Javascript

伊谢尔伦
伊谢尔伦Original
2017-07-18 13:07:561244Durchsuche

Array-Methode

Stack-Methode: Der Stack ist eine LIFO-Last-In-First-Out-Datenstruktur (Last-In-First-Out). Das zuletzt hinzugefügte Element wird frühestens entfernt. Das Einfügen (Schieben genannt) und Entfernen (Popping genannt) von Gegenständen aus dem Stapel erfolgt nur an der Spitze des Stapels.

push()-Methode: Kann eine beliebige Anzahl von Parametern empfangen, diese nacheinander am Ende des Arrays hinzufügen und die Länge des geänderten Arrays zurückgeben.

pop()-Methode: Entfernt das letzte Element vom Ende des Arrays, reduziert den Längenwert des Arrays und gibt das entfernte Element zurück.

Warteschlangenmethode: Die Warteschlange ist eine FIFO-Datenstruktur (First-In-First-Out). Die Warteschlange fügt Elemente am Ende der Liste hinzu und entfernt Elemente vom Anfang der Liste .

shift(): Entfernt das erste Element im Array und gibt es zurück, während die Länge des Arrays um 1 reduziert wird (verwenden Sie Shift() und Push() zusammen, um eine Warteschlange zu simulieren)

unshift(): Fügen Sie eine beliebige Anzahl von Elementen am Anfang des Arrays hinzu und geben Sie die neue Array-Länge zurück (verwenden Sie unshift() und pop() in Kombination, um die Warteschlange aus der entgegengesetzten Richtung zu simulieren)

[Hinweis ] Die von IE7 und darunter zurückgegebene unshift()-Methode Immer undefiniert

Sortiermethode:

reverse(): Kehrt die Reihenfolge des Arrays um und gibt das sortierte Array zurück

sort (): Ordnen Sie die Array-Elemente in aufsteigender Reihenfolge an. Die Sortiermethode ruft die toString()-Methode jedes Array-Elements auf, vergleicht dann die erhaltene Zeichenfolgensortierung und gibt das sortierte Array zurück

[Hinweis] Die Sortierung( )-Methode kann eine Vergleichsfunktion als Parameter akzeptieren, sodass sie angibt, welcher Wert vor welchem ​​Wert steht. Die Vergleichsfunktion benötigt zwei Parameter und gibt eine negative Zahl zurück, wenn der erste Parameter vor dem zweiten Parameter stehen soll, 0, wenn die beiden Parameter gleich sind, und eine positive Zahl, wenn der erste Parameter nach dem zweiten Parameter stehen soll >[Vergleichsfunktion] (Verwendung: z. B. array1.sort(compare);)

Für numerische Typen oder Objekttypen, bei denen die valueOf()-Methode einen numerischen Typ zurückgibt, kann die Vergleichsfunktion vereinfacht werden zu:
function compare(value1,value2){
 if(value1 < value2){
 return -1;
 }else if(value1 > value2){
 return 1;
 }else{
 return 0;
 }
}

[Tipps]: Die folgenden Methoden werden üblicherweise zum Erstellen eines Zufallsarrays verwendet
function compare(value1,value2){
return value2 - value1;
}

Operationsmethoden (Ausschneiden, Verbinden, Einfügen, Löschen, Ersetzen):
function compare(){
return Math.random() - 0.5;
}

concat(): Erstellen Sie ein neues Array basierend auf allen Elementen im aktuellen Array. Erstellen Sie zunächst eine Kopie des aktuellen Arrays, fügen Sie dann die empfangenen Parameter am Ende der Kopie hinzu und geben Sie schließlich das neu erstellte Array zurück (concat () Hat keinen Einfluss auf das ursprüngliche Array)

[Hinweis 1] Wenn keine Parameter an die concat()-Methode übergeben werden, kopiert sie nur das aktuelle Array

[Hinweis 2] Wenn der Parameter ist ein oder mehrere Arrays, dann fügt die Methode jedes Element in diesen Arrays dem Ergebnisarray hinzu

[Hinweis 3] Wenn der übergebene Wert kein Array ist, werden die Werte einfach am Ende hinzugefügt des Ergebnisarrays

slice(): Erstellt ein neues Array basierend auf einem oder mehreren Elementen im aktuellen Array, akzeptiert einen oder zwei Parameter, dh gibt die Start- und Endpositionen der Elemente zurück , und gibt schließlich das neue Array zurück (slice ()Hat keinen Einfluss auf das ursprüngliche Array)
e.g. var numbers = [1,2];
console.log(numbers.concat());//[1,2]
console.log(numbers.concat([5,4,3],[3,4,5],1,2));//[1,2,5,4,3,3,4,5,1,2];

[Hinweis 1] Wenn kein Parameter vorhanden ist, geben Sie das ursprüngliche Array zurück

[Hinweis 2] Wenn dort Ist nur ein Parameter, kehrt die Methode Slice() ausgehend von der durch den Parameter angegebenen Position zu allen Elementen am Ende des aktuellen Arrays zurück

[Hinweis 3] Wenn zwei Parameter vorhanden sind, gibt diese Methode die Elemente zurück zwischen der Startposition und der Endposition, jedoch nicht die Elemente an der Endposition

[Hinweis 4] Wenn der Parameter eine negative Zahl ist, verwenden Sie die Array-Länge plus die negative Zahl als Parameter

[Hinweis 5] Wenn die Endposition kleiner als die Startposition ist, wird ein leeres Array zurückgegeben

splice(): Das ursprüngliche Array wird zum geänderten Array und splice() Gibt ein Array zurück, das aus den aus dem ursprünglichen Array gelöschten Elementen besteht. Wenn keine gelöschten Elemente vorhanden sind, wird ein leeres Array zurückgegeben.
var numbers = [1,2,3,4,5];
console.log(numbers.slice());//[1,2,3,4,5]
console.log(numbers.slice(2));//[3,4,5]
console.log(numbers.slice(2,3));//[3]
console.log(numbers.slice(-3));//-3+5=2 -> [3,4,5]
console.log(numbers.slice(2,1));//[]

[a] Löschen: Die beiden Parameter sollen sein. Die Position des ersten Elements gelöscht, die Anzahl der zu löschenden Elemente

[b] Einfügung: Die drei Parameter sind die Startposition, 0 (die zu löschende Basis), die einzufügenden Elemente

[c ] Ersetzung: Die drei Parameter sind die Startposition, die Anzahl der zu löschenden Elemente und die einzufügenden Elemente

[Hinweis 1] Wenn der erste Parameter eine negative Zahl ist, verwenden Sie die Array-Länge plus negative Zahl als Parameter

[Hinweis 2] Wenn der zweite Parameter eine negative Zahl ist, verwenden Sie 0 als Parameter

Positionsmethode (ECMAScript5): zwei Parameter: das Element zu gefunden werden, was die Suche angibt. Der Index der Startposition (optional). Gibt die Position des ersten Suchelements zurück, das die Bedingungen im Array erfüllt, oder -1, wenn es nicht gefunden wird (die Positionsmethode hat keinen Einfluss auf das ursprüngliche Array)
var numbers = [1,2,3,4,5];
    console.log(numbers.splice(0,2),numbers);//[1,2] [3,4,5]
    var numbers = [1,2,3,4,5];
    console.log(numbers.splice(1,0,11,12),numbers);//[] [1,11,12,2,3,4,5]
    var numbers = [1,2,3,4,5];
    console.log(numbers.splice(1,3,11,12),numbers);//[2,3,4] [1,11,12,5]
    var numbers = [1,2,3,4,5];
    console.log(numbers.splice(-4,3,11,12),numbers);//-4+5=1 -> [2,3,4] [1,11,12,5]
    var numbers = [1,2,3,4,5];
    console.log(numbers.splice(-4,-3,11,12),numbers);//-4+5=1 -> [] [1,11,12,2,3,4,5]

[Hinweis] Verwenden Sie beim Vergleich den Kongruenzoperator

indexOf()

lastIndexOf()

[Tipps] Wenn alle Indexwerte von Elementen zurückgegeben werden, die die Bedingungen erfüllen
var person = {name: &#39;Nicholas&#39;};
var people = [{name: &#39;Nicholas&#39;}];
var morePeople = [person];
alert(people.indexOf(person));//-1,因为person和people[0]虽然值相同,但是是两个引用
alert(morePeople.indexOf(person));//0,因为person和morepeople[0]是同一个引用
alert(morePeople.indexOf({name: &#39;Nicholas&#39;}));//-1,因为不是同一个引用

Iterationsmethode (ECMAScript5): Zwei Parameter: die Funktion, die für jedes Element ausgeführt werden soll, und das Bereichsobjekt zum Ausführen der Funktion – der Wert, der dies beeinflusst (optional). Die an diese Methoden übergebenen Funktionen erhalten drei Parameter: den Wert des Array-Elements, die Position des Elements im Array und das Array-Objekt selbst (die Iterationsmethode hat keinen Einfluss auf das ursprüngliche Array)
function allIndexOf(array,value){
 var result = [];
 var pos = array.indexOf(value);
 if(pos === -1){
  return -1;
 }
 while(pos > -1){
  result.push(pos);
  pos = array.indexOf(value,pos+1);
 }
 return result;
  }
 var array = [1,2,3,3,2,1];
 console.log(allIndexOf(array,1));//[0,5]

jeder (): für das Array Führen Sie die angegebene Funktion für jedes Element im Array aus. Wenn die Funktion für jedes Element „true“ zurückgibt, dann geben Sie „true“ zurück

filter(): Führen Sie die angegebene Funktion für jedes Element im Array aus und Gibt die Funktion zurück. Ein Array bestehend aus Elementen, die „true“ zurückgeben (wird häufig verwendet, um alle Array-Elemente abzufragen, die die Bedingungen erfüllen)

forEach(): Führen Sie die angegebene Funktion für jedes Element im Array aus Rückgabewert (entspricht einer for-Schleife)

map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组(常用于创建包含项与另一个数组一一对应的数组)

some():对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true

 var numbers = [1,2,3,4,5,6,7,8,9,0];
 var sum = 0;
 var everyResult = numbers.every(function(item,index,array){
  return (item>2);
 });
 var filterResult = numbers.filter(function(item,index,array){
  return (item>2)
 });
 var forEachResult = numbers.forEach(function(item,index,array){
  sum += item;
  return (item>2)
 });
 var mapResult = numbers.map(function(item,index,array){
  return (item*2)
 }); 
 var som =  numbers.some(function(item,index,array){
  return (item>2)
 }); 
 console.log(everyResult);//false
 console.log(filterResult);//[3,4,5,6,7,8,9]
 console.log(forEachResult,sum);//undefined 45 
 console.log(mapResult);//[2,4,6,8,10,12,14,16,18,0]
 console.log(someResult);//true
 [tips] function logArray(value,index,array){
   console.log(value);
  }
  [2,5,,,,,9].forEach(logArray)//2 5 9

归并方法(ECMAScript5):迭代数组的所有项,构建一个最终返回的值。接收两个参数:一个在每一项上调用的函数、作为归并基础的初始值(可选)。传给reduce()和reduceRight()的函数接受4个参数:前一个值、当前值、项的索引和数组对象。这个函数返回的任何值都会作为第一个参数自动传给下一项。第一次迭代发生在数组的第二项上。因此,第一个参数是数组第一项,第二个参数是数组第二项(归并方法不会影响原数组)

reduce()

reduceRight()

var sum = values.reduce(function(prev,cur,index,array){
    return prev+cur;
   })
   alert(sum);//15

Das obige ist der detaillierte Inhalt vonZusammenfassung verschiedener Beispiele für Array-Methoden in Javascript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn