Почему мой объект не помещается в другой массив? - PullRequest
0 голосов
/ 20 апреля 2019

У меня были объекты, выдвигаемые из массива storeItems, в массив cartItems и успешная печать в div, но после добавления дополнительных функций он больше не добавляет в массив (проверяется через консоль, и значение длины равно 0).Что я не вижу ??

Мне просто нужно перенести выбранный пользователем объект из массива storeItems в корзину Items, тогда он будет успешно напечатан

//Function to add an item to users cart & update total
function addItem() {
  var addId = document.getElementById("addItemId").value;
  var itemQty = document.getElementById("addItemQty").value;

  for (x = 0; x < storeItems.length; x++) {
    //Calling validation functions
    validateId();
    validateQty();


    if (addId === storeItems[x].id) {
      cartItems.push(new CartItem(storeItems[x].id, storeItems[x].name, storeItems[x].price, storeItems[x].qty, storeItems[x].shippingCost));
      displayCart();
    }

  }

  console.log(cartItems);
}

Мне просто нужно передатьвыбранный пользователем объект из массива storeItems в корзину Items, после чего он успешно напечатает

Ответы [ 2 ]

0 голосов
/ 20 апреля 2019

Убедитесь, что вы используете правильный оператор сравнения при сравнении значения и ввода текста.Ввод текста будет возвращаться в виде строки независимо от того, какое значение type="" установлено.

Поэтому при сравнении ввода с фактическими данными выполните одно из следующих действий:

  • Используйте == вместо ===, чтобы игнорировать / пропустить сравнение типов
  • Привести входное значение к типу, который должен быть, тогда вы можете использовать ===
    • parseInt(myInput) === myNonInput
    • new Date(myInput).getTime() === myNonInput.getTime()
    • myInput === myNonInput.toString()
    • и т. Д.
0 голосов
/ 20 апреля 2019

Хорошо, я иду, я сделал некоторые изменения в вашем коде, чтобы он стал для меня работоспособным.

посмотрите на мой код

var storeItems = [1,2,3,4,5,6]

function addItem(addId, itemQty) {
function addItem(addId, itemQty) {
  for (x = 0; x < storeItems.length; x++) {
    //Calling validation functions
    if (addId === storeItems[x]) {
      cartItems.push(x);
    }
  }
  console.log(cartItems);
}

addItem(6);

Согласно моему выводу,Уважаемый Ватсон, в вашем коде, если условие не работает

 if (addId === storeItems[x].id) {
     ....
    }

, отладьте это условие.это может вам помочь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...