我有以下代码:
var cart = {};
for (i = 0; i < len; i++) {
cart.item_name = items[i].get("item_name");
cart.quantity = items[i].get("quantity");
cart.amount = items[i].get("amount");
cart.total = cart.amount * cart.quantity;
cart.subtotal = cart.subtotal + cart.total;
}
console.log(cart);
我希望每个数据item_name
,quantity
,amount
,total
,subtotal
存储在数组cart
中环。但是,只有最后一个循环中的数据才会显示在控制台中。为什么这和为什么不是存储在数组中的所有数据?
答案 0 :(得分:2)
购物车不是一个数组,在你的情况下它是一个对象,这将适用于您的情况
var carts = [];
for (i = 0; i < len; i++) {
var cart = {};
cart.item_name = items[i].get("item_name");
cart.quantity = items[i].get("quantity");
cart.amount = items[i].get("amount");
cart.total = cart.amount * cart.quantity;
cart.subtotal = cart.subtotal + cart.total;
carts.push(cart);
}
console.log(carts);
答案 1 :(得分:1)
首先将cart声明为数组,需要使用[],然后在每次迭代中替换对象内部的信息,因此只有最后一次迭代才有效。你需要做这样的事情:
$query = $this->getManager()->createNativeQuery('SELECT .... ')
答案 2 :(得分:1)
声明一个数组并将个人车放入其中。
var cart = [];
for (i = 0; i < len; i++) {
var temp = {};
temp.item_name = items[i].get("item_name");
temp.quantity = items[i].get("quantity");
temp.amount = items[i].get("amount");
temp.total = cart.amount * cart.quantity;
temp.subtotal = cart.subtotal + cart.total;
cart.push(temp);
}
console.log(cart);
答案 3 :(得分:1)
使用Array
而不是Object
,并使用Object
方法在此数组中添加每个购物车push()
。
var carts = [];
for (i = 0; i < len; i++) {
var cart = {};
cart.item_name = items[i].get("item_name");
cart.quantity = items[i].get("quantity");
cart.amount = items[i].get("amount");
cart.total = cart.amount * cart.quantity;
cart.subtotal = cart.subtotal + cart.total;
carts.push(cart);
}
答案 4 :(得分:0)
我想你想要一个对象数组,你只需要一个对象。
var cartItems = [];
var cartItem;
for (var i = 0; i < len; i++) {
cartItem = {};
cartItem.item_name = items[i].get("item_name");
cartItem.quantity = items[i].get("quantity");
cartItem.amount = items[i].get("amount");
cartItem.total = cartItem.amount * cartItem.quantity;
cartItem.subtotal = cartItem.subtotal + cartItem.total;
cartItems.push(cartItem);
}
console.log(cartItems);
答案 5 :(得分:0)
您没有将购物车声明为数组。现在数组的语法就像这样
var cart = [];
然后像这样在循环中声明对象
for (i = 0; i < len; i++) {
var cart = {};
cart.item_name = items[i].get("item_name");
cart.quantity = items[i].get("quantity");
cart.amount = items[i].get("amount");
cart.total = cart.amount * cart.quantity;
cart.subtotal = cart.subtotal + cart.total;
carts.push(cart);
}