2016-10-26 156 views
-1

說明:返回一個數組,在數組中傳遞的所有元素,但最後

編寫一個叫做getAllElementsButLast功能。

給定一個數組,getAllElementsButLast返回一個包含所有元素但最後一個元素的數組。

下面是我的代碼,不會通過問題的要求。我不知道爲什麼這是不正確的,即使我回到最後的所有元素。

var arr = [1, 2, 3, 4] 

function getAllElementsButLast(array) { 
    return arr.splice(0, arr.length - 1) 
} 
getAllElementsButLast(arr) // [1, 2, 3] 
+0

如果我這樣做:ARR2 = arr.pop(),並返回ARR它給了我同樣的答案,但依然沒有通過測試 – sopstem2428

+2

你混淆了'array'和'ARR '。 – user2357112

+0

只需添加到@ user2357112的評論中,即可在函數中顯式修改'arr'。你的參數沒有做任何事情。我可以傳遞'getAllElementsButLast(ANYTHING);'它會起作用。在'return'行的兩個引用中將'arr'更改爲'array'。 – Santi

回答

0

我覺得爲什麼它沒有被接受的原因是因爲與splice()改變輸入陣列。這不是你想要的。請使用slice()。此方法不改變輸入數組。

var arr = [1, 2, 3, 4] 
 

 
function getAllElementsButLast(array) { 
 
    var newArr = array.slice(0, array.length - 1); 
 
    return newArr; 
 
} 
 

 
var r = getAllElementsButLast(arr); 
 
console.log(r); 
 
console.log(arr);

相關問題