Files
Niraj Nandish 441f11db38 feat: mobile curriculum testing (#47586)
* feat: first draft of action and cypress spec

* feat: test all generated challenges

* fix: better identification of block

* action: update cypress config

* action: upload to dashboard

* action: testing js cert challenges

* fix: unnecessary after user code for Make a Person

* feat: capture console log output for assert test

* fix: remove after seed code

* fix: change const to let

* fix: test

* action: disable js certification

* action: stop checking out branch in action

* action: check out right mobile repo

Co-authored-by: sembauke <semboot699@gmail.com>
2022-10-14 16:57:34 -07:00

2.3 KiB

id, title, challengeType, videoUrl, forumTopicId, dashedName
id title challengeType videoUrl forumTopicId dashedName
56533eb9ac21ba0edf2244c6 Stand in Line 1 https://scrimba.com/c/ca8Q8tP 18307 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.

assert.isNumber(nextInLine([], 5));

nextInLine([], 1) should return 1

assert(nextInLine([], 1) === 1);

nextInLine([2], 1) should return 2

assert(nextInLine([2], 1) === 2);

nextInLine([5,6,7,8,9], 1) should return 5

assert(nextInLine([5, 6, 7, 8, 9], 1) === 5);

After nextInLine(testArr, 10), testArr[4] should be 10

nextInLine(testArr, 10);
assert(testArr[4] === 10);

--seed--

--before-user-code--

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--

uncapture();
testArr = [1,2,3,4,5];
(function() { return logOutput.join("\n");})();

--seed-contents--

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--

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

function nextInLine(arr, item) {
    arr.push(item);
    return arr.shift();
}