#javascript #arrays
Вопрос:
Я пытаюсь заставить работать модульное тестирование, и у меня возникают проблемы при написании функции, которая добавит новый ингредиент в мой пустой массив.
Тест говорит:
it("should be able to add ingredients to an array", function() {
var ingredients = [];
addIngredients("cheese", ingredients);
assert.equal(ingredients.length, 1);
assert.deepEqual(ingredients, ["cheese"]);
});
Мой код не работает… в нем говорится, что массив все еще пуст, когда он должен возвращать 1. Есть какие-нибудь советы о том, как заставить эту функцию добавлять в пустой массив?
Мой код:
function addIngredients(ingredients) {
var ingredients = [];
ingredients.push();
return ingredients;
}
addIngredients("cheese");
Все еще очень зеленый, любой совет, который может привести меня в правильном направлении, был бы великолепен!
Комментарии:
1. Вы ничего не вставляете в свой массив (отсутствует аргумент), и у ваших первых addIngredients было 2 аргумента, но у последнего есть один параметр
Ответ №1:
Похоже, вы хотите, чтобы ваша addIngredients()
функция получала как строку, так и массив, в который эта строка будет передана в качестве параметров. В этом случае вы можете использовать следующий код:
var ingredients = [];
function addIngredients(ingredient, array) {
array.push(ingredient);
return array;
}
addIngredients("cheese", ingredients);
console.log(ingredients);
Ответ №2:
var ingredients = [];
function addIngredients(ingredient) {
ingredients.push(ingredient);
return ingredients;
}
addIngredients("cheese");
addIngredients("oil");
console.log(ingredients);
Ответ №3:
Проверь, работает ли это.
var ingredients = [];
function addIngredients(ingredient) {
ingredients.push(ingredient);
return ingredients;
}
addIngredients("cheese");