【问题标题】:Sum quantities for list of items in shopping cart using Javascript使用Javascript对购物车中的物品列表求和数量
【发布时间】:2012-09-30 08:47:08
【问题描述】:

我正在尝试编写一小段 Javascript,它将对购物车中的商品列表进行排序,并确定每个品牌的数量总和是否为 12 的倍数。

购物车的一个例子是:

 - Brand 1 - Oranges ---------- Qty: 10
 - Brand 2 - Oranges ---------- Qty: 4
 - Brand 1 - Oranges ---------- Qty: 2
 - Brand 3 - Oranges ---------- Qty: 6
 - Brand 2 - Oranges ---------- Qty: 20

因此总数为:Brand 1 = 12Brand 2 = 24Brand 3 = 6

如果Brand 1Brand 2Brand 3 的总数不是12 的倍数(例如上面的Brand 3),我希望Javascript 函数产生错误。

我认为解决此问题的最佳方法是通过数组并以某种方式根据品牌对其进行拆分,然后将总数相加,但我不确定如何去做。

任何帮助将不胜感激。

【问题讨论】:

  • 您的购物车中的商品是纯字符串吗?如果是这样,您真的应该尝试在那里使用对象。然后只需遍历对象并创建一个具有品牌计数的新对象并在它们上使用% 12 == 0(模数)。
  • @JasperdeVries 感谢您的回复。我认为现在一切正常。干杯

标签: javascript arrays shopping-cart


【解决方案1】:

你需要两个循环,第一个是总结每个品牌的所有数量,第二个循环是检查所有总和是否是 12 的倍数。

你可以在这里找到一个例子:http://jsfiddle.net/5QGWG/

【讨论】:

  • 太好了,谢谢马克。使用屏幕上的 html 动态构建品牌和数量数组的最佳方法是什么。到目前为止,我有以下内容:$(".brand-name").each(function(){ cart.push('brand:'+($(this).text())+',qty:'+$('.quantity')); });
  • cart.push({ brand: $(this).text(), qty: $('.quantity') }); 怎么样,所以你有一个哈希数组,这将更容易访问。
  • 我刚刚解决了这个问题;我最初没有将项目设置为对象,因此上面的 push 代码可以完美运行。非常感谢你的帮助。我喜欢stackoverflow!
猜你喜欢
  • 2015-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多