В настоящее время я пытаюсь выполнить JavaScript на FreeCodeCamp. Я работаю над этим вызовом в течение нескольких дней, и я в тупике. Я попросил о помощи на форуме сайта, но ответ, который я получил, был не очень полезным или полезным.Создание структуры данных в JavaScript
Для этой конкретной задачи я должен «написать функцию nextInLine, которая принимает в качестве аргумента массив (arr) и число (элемент). Добавьте число до конца массива, а затем удалите первый элемент массива. Затем функция nextInLine должна вернуть элемент, который был удален. "
Вот код, который я до сих пор:
function nextInLine(arr, item) {
// Your code here
var nextInLine = ([], 1);
/*var addToNextInLine = nextInLine.push();
var removedFromNextInLine = nextInLine.shift();*/
return nextInLine;
}
// Test Setup
var testArr = [1,2,3,4,5];
// Display Code
console.log("Before: " + JSON.stringify(testArr));
console.log(nextInLine([], 1)); // Modify this line to test
console.log("After: " + JSON.stringify(testArr));
Вот условия я должен удовлетворять для того, чтобы успешно завершить эту задачу:
nextInLine ([], 1) следует вернуться 1
nextInLine ([2], 1) должен возвращать 2
nextInLine ([5,6,7,8,9], 1) должен возвращать 5
После nextInLine (testArr, 10), testArr [4] должно быть 10
я успешно выполнил первое требование, но застрял с выяснением, как завершить последние три. Поскольку меня просят «добавить» и «удалить» элементы из массива, я решил, что для успешной реализации этого упражнения необходимы функции push и shift.
Но когда я проверил свой код, у меня появилось сообщение TypeError, которое гласит: «nextInLine.push не является функцией». Мне кажется, что либо я неправильно написал код для функций push и shift, либо эти функции могут не понадобиться для выполнения этой задачи. Итак, если сказать, что мой вопрос для всех вас заключается в том, что я неправильно написал что-то в своем коде, должен ли я удалить что-то из своего кода, или я пропустил что-то еще?
Пожалуйста, дайте мне знать, если есть какая-либо дополнительная информация, которую вы хотели бы знать, чтобы лучше понять мою проблему.
'var nextInLine = ([], 1);' устанавливает 'nextInLine' в' 1' из-за [оператора запятой] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comma_Operator), и он одновременно переопределяет функцию 'nextInLine'. – Xufox
Что еще важнее, чем фактические упражнения, FCC на самом деле учит вас искать и спрашивать правильно, что (в моих глазах) - еще более важный навык, чем знание кода самостоятельно. +1 –
Ваша функция не использует свои аргументы. Он просто возвращает твердое кодированное значение. – Barmar