-3

我有一个数组数组,例如:-

 a=[["product1", "size1", "color1", "quantity1"],["product2", "size2", "color2", "quantity2"],["product3", "size3", "color3", "quantity3"]]

现在上面的数组数组有数量作为每个数组中的最后一个元素,例如数量1,数量2,数量3和数量4。我想添加每个数量(最后一个元素)以显示总量*例如数量1+数量2+数量3+数量4 * 可以我使用 inject() 方法,有什么建议吗?

4

2 回答 2

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]]
于 2013-05-02T06:24:32.370 回答
1
a.map{ |i| i.last.to_i }.inject(:+)
于 2013-05-02T06:25:51.390 回答