如何根据编号和数量计算数组中的项目总数?

时间:2019-03-10 09:32:27

标签: jquery

我有一个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...

});

但这似乎不起作用。它给了我01015之类的价值。似乎是将这些值放在另一个位置,而不是将它们计算在一起。我在做什么错了?

3 个答案:

答案 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);

});