在Ruby中对数组中的各个数字求和

时间:2015-04-28 04:20:57

标签: ruby arrays sum

我试图找到数组中各个值的总和,而不是将数字加在一起。例如

如果我有数组= [" 123"," 324"," 644"] 我需要它来返回每个值的总和,所以结果应该是

分别为6,9和14。由于1 + 2 + 3 = 6等... 我怎样才能做到这一点?

4 个答案:

答案 0 :(得分:6)

$('#div1 > div:eq(1)').attr('id')

对于数组中的每个字符串:将每个字符转换为整数并对它们求和。

答案 1 :(得分:1)

array = ["123","324","644"]
array.map do |num_string|
  num_string.chars.map(&:to_i).inject(:+)
end
=> [6, 9, 14]

答案 2 :(得分:1)

效率稍高,因为<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.CardView android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <ListView android:minWidth="25px" android:minHeight="25px" android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/climages" /> <ExpandableListView android:id="@+id/catExpandableListview" android:minWidth="25px" android:minHeight="25px" android:groupIndicator="@android:color/transparent" android:layout_width="fill_parent" android:indicatorRight="45sp" android:layout_height="wrap_content" /> </LinearLayout> <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/homeProgress" android:layout_gravity="center" /> </android.support.v7.widget.CardView>

上没有使用地图
chars

答案 3 :(得分:0)

2.2.0 :067 > array.each {|a| print a.split("").inject {|sum, x| sum.to_i+x.to_i}, "\t"}
6   9   14   => ["123", "324", "644"]

如果要将这些值添加到另一个数组,

2.2.0 :068 > marray = []
 => [] 
2.2.0 :069 > array.each {|a| marray << a.split("").inject {|sum, x| sum.to_i+x.to_i}}
 => ["123", "324", "644"] 
2.2.0 :070 > marray
 => [6, 9, 14]