我写了一个应该执行以下操作的方法。将数组作为输入,并将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)
但后来我没弄错。我怎么能解决这个问题?
答案 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}" }