Heim >Web-Frontend >js-Tutorial >Können Sie Array-Werte ändern, während Sie „forEach' in JavaScript verwenden?

Können Sie Array-Werte ändern, während Sie „forEach' in JavaScript verwenden?

DDD
DDDOriginal
2024-11-09 04:58:02393Durchsuche

Can You Modify Array Values While Using `forEach` in JavaScript?

Array-Werte während der Iteration mit forEach ändern

In JavaScript können Sie mit der forEach-Methode über die Elemente eines Arrays iterieren. Standardmäßig können Sie die Werte des Arrays jedoch nicht innerhalb der Iterations-Callback-Funktion ändern.

Betrachten Sie das folgende Beispiel:

var arr = ["one", "two", "three"];

arr.forEach(function(part) {
  part = "four";
  return "four";
});

alert(arr); // Output: ["one", "two", "three"]

Wie Sie sehen können, bleibt das Array arr nach forEach unverändert Schleife. Dies liegt daran, dass die Rückruffunktion forEach nur eine Kopie des Array-Elements empfängt, keinen Verweis auf das tatsächliche Element.

Lösung: Zugriff auf das tatsächliche Element

Um die Werte des Arrays während der Iteration zu ändern, Sie müssen auf die tatsächlichen Elemente zugreifen. Sie können dies tun, indem Sie der Rückruffunktion einen dritten Parameter übergeben, der ein Array-Zeiger sein wird, wie unten gezeigt:

arr.forEach(function(part, index, theArray) {
  theArray[index] = "hello world";
});

In diesem Beispiel ist theArray der Array-Zeiger. Sie können damit auf das tatsächliche Element am aktuellen Index zugreifen und es ändern.

Verwendung als Array-Zeiger

Alternativ können Sie das zweite Argument der forEach-Methode verwenden, um diesen Wert anzugeben für die Callback-Funktion. Dieser Wert ist der Array-Zeiger selbst.

arr.forEach(function(part, index) {
  this[index] = "hello world";
}, arr); // Array must be passed as `this`

Beide Ansätze ermöglichen es Ihnen, die Werte des Arrays zu ändern, während Sie mit der forEach-Methode darüber iterieren.

Das obige ist der detaillierte Inhalt vonKönnen Sie Array-Werte ändern, während Sie „forEach' in JavaScript verwenden?. 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