Modifizieren in einer Funktion ein Array, auf die sie
function nextInLine(arr, item) {
arr.push(item);
var removedItem = arr.shift();
return removedItem;
}
// Test Setup
var testArr = [1,2,3,4,5];
// Display Code
console.log("Before: " + JSON.stringify(testArr));
console.log(nextInLine(testArr, 6));
console.log("After: " + JSON.stringify(testArr)); //*THIS LINE HERE*
In dem obigen Code-Schnipsel übergeben wird, warum es ist, dass die dritte console.log
Linie druckt [2,3,4,5,6]
.. nach meiner Logik, wenn testArr
ist bestanden Zu der nextInLine
-Funktion wird nur eine Kopie von testArr
als ein Argument übergeben. So muss die 3. console.log
Zeile [1,2,3,4,5]
wie es ist, unverändert drucken!
Jede Hilfe wird geschätzt. Danke.
Woran denken Sie, dass das Array kopiert wird, wenn die Funktion aufgerufen wird? So funktioniert JavaScript nicht. –
Mögliches Duplikat von [Ist JavaScript eine Pass-by-Reference- oder Pass-by-Value-Sprache?] (Https://stackoverflow.com/questions/518000/is-javascript-a-pass-by-reference-or-pass -by-value-language) – david