我有一个cart[]
数组,如下所示:
[
{item_id: "0001", qty: "1"},
{item_id: "0002", qty: "2"},
{item_id: "0005", qty: "3"},
{item_id: "0001", qty: "5"}
]
例如,我试图计算所有qty
,其中item_id == 0001
。问题是,item_id
在数组中可能是多次。在这种情况下两次。因此,我尝试将所有qty
都添加到一个值中。
这是我到目前为止所拥有的:
var this_item_qty = 0;
$.each(cart, function(index, value) {
if (value.item_id == "0001"){
this_item_qty = this_item_qty + value.qty;
}
console.log(this_item_qty);
// Returns 01 or 015...
});
但这似乎不起作用。它给了我01
和015
之类的价值。似乎是将这些值放在另一个位置,而不是将它们计算在一起。我在做什么错了?
答案 0 :(得分:1)
您需要使用this_item_qty+= parseInt(value.qty)
答案 1 :(得分:1)
它将value.qty
作为字符串并将其串联。您需要:
this_item_qty = this_item_qty + parseInt(value.qty);
这会将字符串转换为整数。如果您想变得真正可靠,可以在添加之前检查NaN
的解析值。
答案 2 :(得分:1)
使用Number(value.qty)
var this_item_qty = 0;
$.each(cart, function(index, value) {
if (value.item_id == "0001"){
this_item_qty = this_item_qty + Number(value.qty);
}
console.log(this_item_qty);
});