Узел экспресс-цикла через данные сеанса - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть данные в пользовательском сеансе (еще не сохраненные в базе данных), которые мне нужно запросить.Я ищу, чтобы получить значение количества для каждого из 3 пунктов ниже, например, я ищу, чтобы получить 1 для количества из { prod: [Object], price: 100, quantity: 1 }

, как я могу циклически просмотреть данные сеанса иполучить количество?

{ products:
   { '5c60c83e84555d391aaca89b': { prod: [Object], price: 100, quantity: 1 },
     '5c60d6cd3351283d13a9f463': { prod: [Object], price: 150, quantity: 2 },
     '5c60da303351283d13a9f464': { prod: [Object], price:10, quantity: 2 } },
  cartQty: 5,
  cartTotal: 420 }

Я пробовал это, которое дает мне идентификатор как 5c60c83e84555d391aaca89b

    var sp = sessionCart.products;
    for (var p in sp) {
        console.log(p);
    } 

Я ничего не получаю для вывода, когда я пытаюсь это

         Array.from(sessionCart.products).forEach(function (child) {
             console.log(child);
         });

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Суть вашей проблемы в том, что вы пытаетесь перебрать значения объекта и извлечь свойство (количество) каждого объекта.

Вы можете использовать Object.values ​​() , чтобы получить только значения объекта в виде массива и пройти через него.

Object.values(sessionCart.products).forEach(function (product) {
  console.log(product.quantity)
})
0 голосов
/ 22 февраля 2019

Вы можете слегка изменить цикл for...in, чтобы отобразить quantity:

var sessionCart = {
  products: {
    '5c60c83e84555d391aaca89b': {
      prod: [Object],
      price: 100,
      quantity: 1
    },
    '5c60d6cd3351283d13a9f463': {
      prod: [Object],
      price: 150,
      quantity: 2
    },
    '5c60da303351283d13a9f464': {
      prod: [Object],
      price: 10,
      quantity: 2
    }
  },
  cartQty: 5,
  cartTotal: 420
}

var sp = sessionCart.products;
for (var p in sp) {
  console.log(sp[p].quantity);
}

В качестве альтернативы используйте итерацию над Object.values и деструктурирование следующим образом:

var sessionCart = {
  products: {
    '5c60c83e84555d391aaca89b': {
      prod: [Object],
      price: 100,
      quantity: 1
    },
    '5c60d6cd3351283d13a9f463': {
      prod: [Object],
      price: 150,
      quantity: 2
    },
    '5c60da303351283d13a9f464': {
      prod: [Object],
      price: 10,
      quantity: 2
    }
  },
  cartQty: 5,
  cartTotal: 420
};

Object.values(sessionCart.products).forEach(({ quantity }) => console.log(quantity));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...