我有这个数组:
array = ["1", "Hel", "6", "3", "lo" ]
。
我只想输出整数之和,即10.我该怎么做?
答案 0 :(得分:6)
只是这样做:
array.inject(0) { |sum,n| sum + n.to_i } # => 10
#to_i
会将所有非整数字符串转换为0
。但是没有问题,因为所有求和都不会受到影响。
答案 1 :(得分:5)
String#to_i
会在您的示例中返回0
,因此我们可以使用它来映射所有数组元素。
array.map(&:to_i).reduce(0, :+)
答案 2 :(得分:0)
由于Ruby 2.4数组具有Enumerable#sum方法。
array.sum(&:to_i)