我在用户会话中有需要查询的数据(尚未保存到数据库)。我正在寻找以下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 }
我已经尝试过这样做,这使我的ID像5c60c83e84555d391aaca89b
var sp = sessionCart.products;
for (var p in sp) {
console.log(p);
}
尝试此操作一无所获
Array.from(sessionCart.products).forEach(function (child) {
console.log(child);
});
答案 0 :(得分:1)
您可以稍微更改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));
答案 1 :(得分:0)
问题的症结在于您试图遍历对象的值并提取每个对象的属性(数量)。
您可以使用Object.values()来获取对象的值作为数组并循环遍历。
Object.values(sessionCart.products).forEach(function (product) {
console.log(product.quantity)
})