--- id: 56533eb9ac21ba0edf2244c6 title: In der Schlange stehen challengeType: 1 videoUrl: 'https://scrimba.com/c/ca8Q8tP' forumTopicId: 18307 dashedName: stand-in-line --- # --description-- In der Informatik ist eine Warteschlange (Queue) eine abstrakte Datenstruktur, in der Elemente in einer Reihenfolge aufbewahrt werden. Neue Elemente können am Ende der Warteschlange hinzugefügt werden und alte Elemente werden vom Anfang der Warteschlange entfernt. # --instructions-- Schreibe eine Funktion `nextInLine`, die ein Array (`arr`) und eine Zahl (`item`) als Argumente entgegennimmt. Füge die Zahl an das Ende des Arrays an und entferne dann das erste Element des Arrays. Die Funktion `nextInLine` sollte dann das Element zurückgeben, das entfernt wurde. # --hints-- `nextInLine([], 5)` sollte eine Zahl zurückgeben. ```js assert.isNumber(nextInLine([], 5)); ``` `nextInLine([], 1)` sollte `1` zurückgeben ```js assert(nextInLine([], 1) === 1); ``` `nextInLine([2], 1)` sollte `2` zurückgeben ```js assert(nextInLine([2], 1) === 2); ``` `nextInLine([5,6,7,8,9], 1)` sollte `5` zurückgeben ```js assert(nextInLine([5, 6, 7, 8, 9], 1) === 5); ``` Nach der Ausführung der Funktion `nextInLine(testArr, 10)`, sollte `testArr[4]` gleich `10` sein ```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 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)); ``` # --solutions-- ```js let testArr = [1, 2, 3, 4, 5]; function nextInLine(arr, item) { arr.push(item); return arr.shift(); } ```