--- id: 56533eb9ac21ba0edf2244c6 title: Stand in Line challengeType: 1 videoUrl: 'https://scrimba.com/c/ca8Q8tP' forumTopicId: 18307 dashedName: stand-in-line --- # --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. # --instructions-- 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. # --hints-- `nextInLine([], 5)` should return a number. ```js assert.isNumber(nextInLine([], 5)); ``` `nextInLine([], 1)` should return `1` ```js assert(nextInLine([], 1) === 1); ``` `nextInLine([2], 1)` should return `2` ```js assert(nextInLine([2], 1) === 2); ``` `nextInLine([5,6,7,8,9], 1)` should return `5` ```js assert(nextInLine([5, 6, 7, 8, 9], 1) === 5); ``` After `nextInLine(testArr, 10)`, `testArr[4]` should be `10` ```js nextInLine(testArr, 10); assert(testArr[4] === 10); ``` # --seed-- ## --before-user-code-- ```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-user-code-- ```js uncapture(); testArr = [1,2,3,4,5]; (function() { return logOutput.join("\n");})(); ``` ## --seed-contents-- ```js function nextInLine(arr, item) { // Only change code below this line return item; // Only change code above this line } // Setup const 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)); ``` # --solutions-- ```js const testArr = [1, 2, 3, 4, 5]; function nextInLine(arr, item) { arr.push(item); return arr.shift(); } ```