我目前通过freecodecamp网站的javascript部分练习,我试图理解为什么一个特定的方法有效解决它。
function nextInLine(arr, item) {
// Your code here
arr.push(item);
var firstItem = arr.shift(arr);
return firstItem; // Change this line
}
我试图理解为什么我必须首先创建变量firstItem?还有另一种方法可以解决这个问题吗?如果是这样,请告诉我你是如何解决它的。
答案 0 :(得分:1)
欢迎使用Stack Overflow:)
作为开展免费代码营前端认证的一部分,我也完成了这项任务。作为参考,这是任务:https://www.freecodecamp.com/challenges/stand-in-line
编写一个函数
nextInLine
,它接受一个数组(arr
)和一个数字 (item
)作为参数。然后将数字添加到数组的末尾 删除数组的第一个元素。然后应该使用nextInLine函数 返回已删除的元素。
虽然您的解决方案可以提供所需的结果,但可以在不声明变量(代码中为firstItem
)的情况下解决此任务。我在这里准备并演示了您的描述:http://codepen.io/PiotrBerebecki/pen/xEYbgv
关键是要理解:
shift()方法从数组中移除第一个元素 AND 返回 那个元素。此方法更改数组的长度。 https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/shift
function nextInLine(arr, item) {
// arr is now: [5,6,7,8,9]
arr.push(item); // add 10 to the and of array
// arr is now: [5,6,7,8,9,10]
return arr.shift(); // remove first element of arr (5)
// and then return this first element (5),
// arr is now [6,7,8,9,10]
}
var testArr = [5,6,7,8,9];
console.log(nextInLine(testArr, 10)); // 5
console.log("After: " + JSON.stringify(testArr)); // After: [6,7,8,9,10]
答案 1 :(得分:0)
return arr.shift(arr);
声明变量返回
答案 2 :(得分:0)
.shift
函数不使用任何参数。它只是逐个删除数组的第一个元素
这是正确的代码。
function nextInLine(arr, item) {
arr.push(item);
var remove=arr.shift();
}