Javascript übergibt Arrays an Funktionen nach Wert, wobei das ursprüngliche Array unverändert bleibt
Ich habe hier viele Antworten zu "nach Wert" und "nach Verweis" gelesen, die zum Senden von Arrays an JavaScript-Funktionen verwendet werden. Ich habe jedoch ein Problem, ein Array an eine Funktion zu senden und das ursprüngliche Array unverändert zu lassen. Dieses Beispiel veranschaulicht das Problem:
function myFunction(someArray)
{
// any function that makes an array based on a passed array;
// someArray has two dimensions;
// I've tried copying the passed array to a new array like this (I've also used 'someArray' directly in the code);
funcArray = new Array();
funcArray = someArray;
var i = 0;
for(i=0; i<funcArray.length; i++)
{
funcArray[i].reverse;
}
return funcArray;
}
Ich kann nicht verstehen, warum irgendetwas in dieser Funktion das ursprüngliche Array ändern sollte.
Durch den Aufruf dieser Funktion wird das ursprüngliche Array direkt geändert, wenn der Funktionsaufruf einem neuen Array zugewiesen wird:
myArray = [["A","B","C"],["D","E","F"],["G","H","I"]];
anotherArray = new Array();
anotherArray = myFunction(myArray);
// myArray gets modified!;
Ich habe versucht, mit .valueOf () das Grundelement zu senden:
anotherArray = myFunction(myArray.valueOf());
// myArray gets modified!;
Ich habe sogar versucht, das Array Element für Element und Unterelement für Unterelement aufzuteilen und alles einem neuen 2D-Array zuzuweisen, und das ursprüngliche Array wird immer noch geändert.
Ich habe die Unterelemente auch zu einer Zeichenfolge zusammengefügt, sie verarbeitet, wieder in Arrays aufgeteilt und das ursprüngliche Array wird immer noch geändert.
Weiß jemand, wie ich die Array-Werte an eine Funktion übergeben kann, ohne dass sich das übergebene Array ändert?