Как создать функцию, которая будет добавлять новые элементы в пустой массив(JS)?

#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");