我有一个数组数组,如: -
a=[["product1", "size1", "color1", "quantity1"],["product2", "size2", "color2", "quantity2"],["product3", "size3", "color3", "quantity3"]]
现在上面的数组数组的数量是每个数组中的最后一个元素,例如quantity1,quantity2,quantity3和quantity4.i想要添加每个数量(最后一个元素)以显示总数量 * 等数量1 + quantity2 + quantity3 + quantity4 * 我可以使用inject()方法,任何建议??
答案 0 :(得分:1)
看看:
total_quantity = a.inject(0){|sum,x| sum + x.last }
每个x
都是您的内部数组之一。因此,使用last
来获取它的最后一个元素。
免责声明:如果内部数组中的最后一个元素是数字,则此方法有效。如在
a = [["product1", "size1", "color1", 1],["product2", "size2", "color2", 4],["product3", "size3", "color3", 3]]
答案 1 :(得分:1)
a.map{ |i| i.last.to_i }.inject(:+)