Tell us what’s happening:
I don’t understand why I have to declare a variable return to return the removed value when the method .shift() already returns the removed value
// Only change code above this line
}
Your code so far
function nextInLine(arr, item) {
// Only change code below this line
arr.push(item);
arr.shift();
// Only change code above this line
}
// Setup
let testArr = [1, 2, 3, 4, 5];
// Display code
console.log("Before: " + JSON.stringify(testArr));
console.log(nextInLine(testArr, 6));
console.log("After: " + JSON.stringify(testArr));
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36
Ask yourself, who called shift?
Answer: the function
Therefore, the function is the one that gets to receive the return value from shift.
Who called the function?
The code in the global scope.
That code will not see anything going on inside that function unless the function goes to the trouble of returning something.