我目前正在嘗試FreeCodeCamp上的JavaScript挑戰。我幾天來一直在努力研究這個挑戰,並且陷入了困境。我在網站的論壇上尋求幫助,但我得到的迴應並不是很有幫助或有用。在JavaScript中創建數據結構
對於這個特殊的挑戰,我必須「寫一個函數nextInLine,它將一個數組(arr)和一個數字(item)作爲參數。將數字添加到數組的末尾,然後移除數組的第一個元素。 nextInLine函數應該返回被刪除的元素。「
下面是代碼我迄今爲止:
function nextInLine(arr, item) {
// Your code here
var nextInLine = ([], 1);
/*var addToNextInLine = nextInLine.push();
var removedFromNextInLine = nextInLine.shift();*/
return nextInLine;
}
// Test Setup
var testArr = [1,2,3,4,5];
// Display Code
console.log("Before: " + JSON.stringify(testArr));
console.log(nextInLine([], 1)); // Modify this line to test
console.log("After: " + JSON.stringify(testArr));
下面是我必須爲了滿足成功地完成這一挑戰的條件:
nextInLine([],1)應返回1
nextInLine([2],1)應該返回2
nextInLine([5,6,7,8,9],1)應該返回5
後nextInLine(testArr,10),testArr [4]應該是10
我已成功完成第一個要求,但我堅持要搞清楚如何完成最後三個。因爲我被要求從數組中「添加」和「移除」元素,所以我認爲推送和移位功能對於成功完成此練習是必需的。
但是,當我測試我的代碼,我得到一個TypeError消息,讀取「nextInLine.push不是一個函數」。在我看來,要麼我錯誤地編寫了推送和移位功能的代碼,要麼這些功能可能不是完成這個挑戰所必需的。所以,這就是說,我所有人的問題都是我錯誤地在代碼中寫了一些東西,我應該從代碼中刪除一些東西,還是錯過了其他東西?
請讓我知道是否有任何額外的信息,你想知道爲了更好地瞭解我的問題。
'var nextInLine =([],1);'由於[逗號運算符]將'nextInLine'設置爲'1'(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comma_Operator),它同時遮蔽了函數'nextInLine'。 – Xufox
比實際練習更重要的是,FCC實際上教會你正確地搜索和詢問,這是(在我眼中)比知道如何獨立編碼更重要的技能。 +1 –
你的函數不使用它的參數。它只是返回一個硬編碼的值。 – Barmar