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*
在上面的代碼段,這是爲什麼認爲第三console.log
線打印[2,3,4,5,6]
..按我的邏輯,當testArr
傳遞到nextInLine
函數,只有testArr
的副本作爲參數傳遞。因此,第3條console.log
行必須按原樣打印[1,2,3,4,5]
,不作任何更改!
任何幫助表示讚賞。謝謝。
是什麼讓你認爲數組在被調用時被複制?這不是JavaScript的工作原理。 –
[JavaScript是傳遞引用還是傳值語言?]的可能重複(https://stackoverflow.com/questions/518000/is-javascript-a-pass-by-reference-or-pass按值語言) – david