JavaScript-Array-Iteration

Array-Iterationsmethoden führen Operationen auf jedes Array-Element aus.

Array.forEach()

forEach() Die Methode ruft die Funktion einmal für jedes Array-Element auf (Callback-Funktion).

Beispiel

var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);
function myFunction(value, index, array) {
  txt = txt + value + "<br>"; 
}

Versuchen Sie es selbst

注释:Diese Funktion akzeptiert 3 Parameter:

  • Projektwert
  • Projektindex
  • Array selbst

Im obigen Beispiel wurde nur der value-Parameter verwendet. Dieses Beispiel kann neu geschrieben werden als:

Beispiel

var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);
function myFunction(value) {
  txt = txt + value + "<br>"; 
}

Versuchen Sie es selbst

所有浏览器都支持 Array.forEach(),除了 Internet Explorer 8 或更早的版本:

Yes 9.0 Yes Yes Yes

Array.map()

map() Die Methode erstellt ein neues Array, indem sie die Funktion auf jedem Array-Element ausführt.

map() Die Methode führt die Funktion nicht auf Array-Elementen ohne Wert aus.

map() Die Methode ändert nicht das ursprüngliche Array.

Dieser Beispiel multipliziert jeden Wert im Array mit 2:

Beispiel

var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);
function myFunction(value, index, array) {
  return value * 2;
}

Versuchen Sie es selbst

Bitte beachten Sie, dass die Funktion 3 Parameter hat:

  • Projektwert
  • Projektindex
  • Array selbst

Wenn die Callback-Funktion nur den value-Parameter verwendet, können die index- und array-Parameter weggelassen werden:

Beispiel

var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);
function myFunction(value) {
  return value * 2;
}

Versuchen Sie es selbst

所有浏览器都支持 Array.map(),除了 Internet Explorer 8 或更早的版本:

Yes 9.0 Yes Yes Yes

Array.filter()

filter() Die Methode erstellt ein neues Array, das die durch den Test hindurchgegangenen Array-Elemente enthält.

Dieser Beispiel erstellt ein neues Array aus Elementen mit Werten größer als 18:

Beispiel

var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);
function myFunction(value, index, array) {
  return Wert > 18;
}

Versuchen Sie es selbst

Bitte beachten Sie, dass diese Funktion 3 Parameter akzeptiert:

  • Projektwert
  • Projektindex
  • Array selbst

Im obigen Beispiel verwendet die Callback-Funktion keine index- und array-Parameter, daher können sie weggelassen werden:

Beispiel

var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);
function myFunction(value) {
  return Wert > 18;
}

Versuchen Sie es selbst

所有浏览器都支持 Array.filter(),除了 Internet Explorer 8 或更早的版本:

Yes 9.0 Yes Yes Yes

Array.reduce()

reduce() Die Methode führt die Funktion auf jedem Array-Element aus, um einen einzigen Wert zu erzeugen (zu reduzieren).

reduce() Die Methode arbeitet im Array von links nach rechts. Siehe auch reduceRight().

reduce() Die Methode verringert nicht das ursprüngliche Array.

Dieser Beispielbestimmung wird die Summe aller Zahlen im Array zugeordnet:

Beispiel

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);
function myFunction(total, value, index, array) {
  return total + value;
}

Versuchen Sie es selbst

Bitte beachten Sie, dass diese Funktion 4 Parameter akzeptiert:

  • 总数(初始值/先前返回的值)
  • Projektwert
  • Projektindex
  • Array selbst

上例并未使用 index 和 array 参数。可以将它改写为:

Beispiel

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);
function myFunction(total, value) {
  return total + value;
}

Versuchen Sie es selbst

reduce() Die Methode kann einen Startwert akzeptieren:

Beispiel

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction, 100);
function myFunction(total, value) {
  return total + value;
}

Versuchen Sie es selbst

所有浏览器都支持 Array.reduce(),除了 Internet Explorer 8 或更早的版本:

Yes 9.0 Yes Yes Yes

Array.reduceRight()

reduceRight() Die Methode führt die Funktion auf jedem Array-Element aus, um einen einzigen Wert zu erzeugen (zu reduzieren).

reduceRight() Die Methode arbeitet im Array von rechts nach links. Siehe auch reduce().

reduceRight() Die Methode verringert nicht das ursprüngliche Array.

Dieser Beispielbestimmung wird die Summe aller Zahlen im Array zugeordnet:

Beispiel

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduceRight(myFunction);
function myFunction(total, value, index, array) {
  return total + value;
}

Versuchen Sie es selbst

Bitte beachten Sie, dass diese Funktion 4 Parameter akzeptiert:

  • 总数(初始值/先前返回的值)
  • Projektwert
  • Projektindex
  • Array selbst

上例并未使用 index 和 array 参数。可以将它改写为:

Beispiel

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduceRight(myFunction);
function myFunction(total, value) {
  return total + value;
}

Versuchen Sie es selbst

所有浏览器都支持 Array.reduceRight(),除了 Internet Explorer 8 或更早的版本:

Yes 9.0 Yes Yes Yes

Array.every()

every() 方法检查所有数组值是否通过测试。

这个例子检查所有数组值是否大于 18:

Beispiel

var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);
function myFunction(value, index, array) {
  return Wert > 18;
}

Versuchen Sie es selbst

Bitte beachten Sie, dass diese Funktion 3 Parameter akzeptiert:

  • Projektwert
  • Projektindex
  • Array selbst

如果回调函数仅使用第一个参数(值)时,可以省略其他参数:

Beispiel

var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);
function myFunction(value) {
  return Wert > 18;
}

Versuchen Sie es selbst

所有浏览器都支持 Array.every(),除了 Internet Explorer 8 或更早的版本:

Yes 9.0 Yes Yes Yes

Array.some()

some() 方法检查某些数组值是否通过了测试。

这个例子检查某些数组值是否大于 18:

Beispiel

var numbers = [45, 4, 9, 16, 25];
var someOver18 = numbers.some(myFunction);
function myFunction(value, index, array) {
  return Wert > 18;
}

Versuchen Sie es selbst

Bitte beachten Sie, dass diese Funktion 3 Parameter akzeptiert:

  • Projektwert
  • Projektindex
  • Array selbst

所有浏览器都支持 Array.some(),除了 Internet Explorer 8 或更早的版本:

Yes 9.0 Yes Yes Yes

Array.indexOf()

indexOf() 方法在数组中搜索元素值并返回其位置。

注释:第一个项目的位置是 0,第二个项目的位置是 1,以此类推。

Beispiel

检索数组中的项目 "Apple":

var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");

Versuchen Sie es selbst

所有浏览器都支持 Array.indexOf(),除了 Internet Explorer 8 或更早的版本:

Yes 9.0 Yes Yes Yes

语法

array.indexOf(item, start)
item 必需。要检索的项目。
start 可选。从哪里开始搜索。负值将从结尾开始的给定位置开始,并搜索到结尾。

如果未找到项目,Array.indexOf() 返回 -1。

如果项目多次出现,则返回第一次出现的位置。

Array.lastIndexOf()

Array.lastIndexOf()Array.indexOf() 类似,但是从数组结尾开始搜索。

Beispiel

检索数组中的项目 "Apple":

var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.lastIndexOf("Apple");

Versuchen Sie es selbst

所有浏览器都支持 Array.lastIndexOf(),除了 Internet Explorer 8 或更早的版本:

Yes 9.0 Yes Yes Yes

语法

array.lastIndexOf(item, start)
item 必需。要检索的项目。
start Optional. Wo beginnt die Suche. Negative Werte beginnen an der Schlussseite an der angegebenen Position und suchen bis zum Anfang.

Array.find()

find() Die Methode gibt den Wert des ersten Elements zurück, das den Testfunktionen entspricht.

Dieser Beispielcode sucht (gibt zurück) den Wert des ersten Elements, das größer als 18 ist:

Beispiel

var numbers = [4, 9, 16, 25, 29];
var first = numbers.find(myFunction);
function myFunction(value, index, array) {
  return Wert > 18;
}

Versuchen Sie es selbst

Bitte beachten Sie, dass diese Funktion 3 Parameter akzeptiert:

  • Projektwert
  • Projektindex
  • Array selbst

Alte Browser unterstützen dies nicht Array.find()Nachstehend wird die erste Browserversion aufgeführt, die diesen Methoden vollständig unterstützt:

45 12 25 8 32

Array.findIndex()

findIndex() Die Methode gibt den Index des ersten Elements zurück, das den Testfunktionen entspricht.

Dieser Beispielcode sucht nach dem ersten Element, das größer als 18 ist:

Beispiel

var numbers = [4, 9, 16, 25, 29];
var first = numbers.findIndex(myFunction);
function myFunction(value, index, array) {
  return Wert > 18;
}

Versuchen Sie es selbst

Bitte beachten Sie, dass diese Funktion 3 Parameter akzeptiert:

  • Projektwert
  • Projektindex
  • Array selbst

Alte Browser unterstützen dies nicht Array.findIndex()Nachstehend wird die erste Browserversion aufgeführt, die diesen Methoden vollständig unterstützt:

45 12 25 8 32