我目前正在尝试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