--- id: 56533eb9ac21ba0edf2244c6 title: Stand in Line challengeType: 1 videoUrl: 'https://scrimba.com/c/ca8Q8tP' --- ## Description
In Computer Science a queue is an abstract Data Structure where items are kept in order. New items can be added at the back of the queue and old items are taken off from the front of the queue. Write a function nextInLine which takes an array (arr) and a number (item) as arguments. Add the number to the end of the array, then remove the first element of the array. The nextInLine function should then return the element that was removed.
## Instructions
## Tests
```yml tests: - text: nextInLine([], 5) should return a number. testString: assert.isNumber(nextInLine([],5)); - text: nextInLine([], 1) should return 1 testString: assert(nextInLine([],1) === 1); - text: nextInLine([2], 1) should return 2 testString: assert(nextInLine([2],1) === 2); - text: nextInLine([5,6,7,8,9], 1) should return 5 testString: assert(nextInLine([5,6,7,8,9],1) === 5); - text: After nextInLine(testArr, 10), testArr[4] should be 10 testString: nextInLine(testArr, 10); assert(testArr[4] === 10); ```
## Challenge Seed
```js function nextInLine(arr, item) { // Your code here return item; // 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)); ```
### Before Test
```js var logOutput = []; var originalConsole = console function capture() { var nativeLog = console.log; console.log = function (message) { logOutput.push(message); if(nativeLog.apply) { nativeLog.apply(originalConsole, arguments); } else { var nativeMsg = Array.prototype.slice.apply(arguments).join(' '); nativeLog(nativeMsg); } }; } function uncapture() { console.log = originalConsole.log; } capture(); ```
### After Test
```js uncapture(); testArr = [1,2,3,4,5]; (function() { return logOutput.join("\n");})(); ```
## Solution
```js var testArr = [ 1,2,3,4,5]; function nextInLine(arr, item) { arr.push(item); return arr.shift(); } ```