В моих исследованиях javascript мне задали следующий вопрос:
В области компьютерных наук очередь - это абстрактная структура данных, в которой элементы хранятся в порядке. Новые элементы могут быть добавлены в конец очереди, а старые элементы удалены из передней части очереди.
Напишите функцию nextInLine, которая принимает массив (arr) и число (item) в качестве аргументов.
Добавьте число в конец массива, затем удалите первый элемент массива.
Функция nextInLine должна затем вернуть удаленный элемент.
Вот следующие тесты, которые я должен выполнить:
nextInLine([], 5) should return a number.
nextInLine([], 1) should return 1
nextInLine([2], 1) should return 2
nextInLine([5,6,7,8,9], 1) should return 5
After nextInLine(testArr, 10), testArr[4] should be 10
В основном я должен удалить первый элемент в массиве и добавить его в конец массива. Я рисую бланк и вот что у меня есть:
function nextInLine(arr, item) {
var temp = [];
for(var i = 0; i < arr.length; i++){
if(arr[i] == arr[0]){
temp = arr[i];
arr[i] = arr[i+1];
}
}
return item;
}
// Test Setup
var 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));
В этом примере мой вывод следующий:
Before: [1,2,3,4,5]
6
After: [2,3,3,4,5]
Я тоже пробовал это так:
function nextInLine(arr, item) {
// Your code here
arr.push();
arr.pop(arr[0]);
return item;
}
var testArr = [1,2,3,4,5];
console.log("Before: " + JSON.stringify(testArr));
console.log(nextInLine(testArr, 6));
console.log("After: " + JSON.stringify(testArr));
И получите это:
Before: [1,2,3,4,5]
6
After: [1,2,3,4]
Если бы кто-то мог направить меня, это было бы очень признательно.
UPDATE
Есть ли способ сделать это без встроенных методов?