"Stand in Line" can,t solve!

Tell us what’s happening:

I am stuck !

Your code so far


function nextInLine(arr, item) {
  // Your code here
  testArr.push(item);
  testArr.shift();
  return item;  // Change this line
}

// Test Setup
var testArr = [1,2,3,4,5];
var item=testArr.shift();
// Display Code
console.log("Before: " + JSON.stringify(testArr));
console.log(nextInLine(testArr, 6)); // Modify this line to test
console.log("After: " + JSON.stringify(testArr));

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36.

Link to the challenge:
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript/stand-in-line/

function nextInLine(arr, item) {
  // Your code here
  arr.push(item);
  var removed = arr.shift();
  return removed;  // Change this line
}

// Test Setup
var testArr = [1,2,3,4,5];

// Display Code
console.log("Before: " + JSON.stringify(testArr));
console.log(nextInLine(testArr, 6)); // Modify this line to test
console.log("After: " + JSON.stringify(testArr));

let myNumbers = [1,2,3,4,5];

myNumbers.shift() does two things:

It mutates myNumbers. Meaning it changes its value from:
[1,2,3,4,5] to [2,3,4,5]

AND

it returns 1.

It returns 1 because that was the number removed from the front of the array.

So you don’t need to reassign it to a variable. Returning myNumbers.shift() is faster.

For the record,. I almost never use push/pop/shift/unshift. I always prefer .slice() instead. Mainly because .slice() does not mutate any values.

Also, you are using testArr inside your function, but with that it will work only with that array and not any other that may be passed in - your function has two parameters and you are using only one of those