我是一個JavaScript初學者,我已經寫了下面的代碼片段,在我的腦海裏應該返回一個數組:[5,4,3,2,1],而是它返回[5]。我意識到有更好的方法來實現這個結果,但是我想了解的是爲什麼我的解決方案不起作用。JavaScript函數包含數組方法不返回所需的結果
function reverseArray(array) {
for (var i = 3; i >= 0; i--)
array.concat(array.slice(i,i+1));
for (var i = 3; i >= 0; i--)
array.shift();
return array;
};
var arrayValue = [1, 2, 3, 4, 5];
reverseArray(arrayValue);
console.log(arrayValue);
// JS Bin returns: [5]
移位方法似乎可行,但concat/slice代碼似乎不會改變數組。爲什麼不?當我測試線路作爲獨立代碼時,它工作正常。任何解釋將不勝感激。謝謝!
爲什麼不交換第一個和最後一個元素以及第一個+1和最後一個-1等等? –
'arrayValue.reverse()' – adeneo
'concat/slice代碼似乎不會改變數組。爲什麼不呢?因爲'concat'和'slice'都不能修改數組。我知道這是一個無聊的解釋,但這是解釋。 – vlaz