在数组中添加两个元素并显示总和

时间:2014-12-23 09:53:35

标签: ruby ruby-on-rails-3

我写了一个应该执行以下操作的方法。将数组作为输入,并将2加到数组的数字上。

基本上是这样的:

array = [1,2,3]
new_array = array.map! { |item| item + 2 }

我想展示总和。所以对于数组,它应该说“1 + 2 = 3”,“2 + 2 = 4等...”而不是仅仅3.我试过这个:

a = [1,2,3]

def add_two(a)

a.map {|item| puts "#{item} + 2 = item + 2"}
a.map!(&:to_s)
end

add_two(a)

但后来我没弄错。我怎么能解决这个问题?

6 个答案:

答案 0 :(得分:0)

使用:

array = [1,2,3]
# if you don't want to change the original array, then don't use map!
new_array = array.map { |item| "#{item} + 2 = #{item + 2}" }

# or write in a function.
def add_two(a)
  a.map { |item| "#{item} + 2 = #{item + 2}" }
end

答案 1 :(得分:0)

试试这个

[1,2,3].each { |item| puts "#{item} + 2 = #{item + 2}" }

答案 2 :(得分:0)

puts a.map! {|item| "#{item} + 2 = #{(item + 2).to_s}\n"}.join

试试这个

答案 3 :(得分:0)

代码如下: -

arr = [1,2,3];

arr.collect{|a| "#{a} + 2 = #{a+2}"}

答案 4 :(得分:0)

a.map {|item| puts "#{item} + 2 = item + 2"}

=符号之后的代码中,您尝试访问对象item,但是如果它在引号之间隐含,您应该使用#{item +2},这意味着它将 2如下所示

a.each { |item| puts "#{item} + 2 = #{item + 2}" }

<强>输出:

1 + 2 = 3
2 + 2 = 4
3 + 2 = 5
 => [1, 2, 3] 

答案 5 :(得分:-1)

下面的红宝石很容易

array = [1,4,5]

total = array.sum

将返回以下内容......

=> 10

并使用步骤

array.each { |item| puts "#{item} + 2 = #{item + 2}" }