Ruby on rails 如何在ruby中对迭代器使用双倍数字

Ruby on rails 如何在ruby中对迭代器使用双倍数字,ruby-on-rails,Ruby On Rails,需要将数组中的每个值加倍。我知道double不是一个命令,但不确定还能用什么 odds = [1,3,5,7,9] array.each do |x| x += double print "#{x}" end 用于创建新数组 odds = [1,3,5,7,9] arr = odds.map{|x| x*2} arr.inspect # => [2,6,10,14,18] 要修改相同的数组,请使用 你是说“double”是指乘以2,还是说double是指重复 a

需要将数组中的每个值加倍。我知道double不是一个命令,但不确定还能用什么

 odds = [1,3,5,7,9]
  array.each do |x|
  x += double
  print "#{x}"
  end
用于创建新数组

odds = [1,3,5,7,9]
arr = odds.map{|x| x*2}   
arr.inspect
# => [2,6,10,14,18]
要修改相同的数组,请使用


你是说“double”是指乘以2,还是说double是指重复

array = [1,3,5,7,9]
array.each { |x| print "#{x*2}"; }
但您可能需要一个新数组,或者映射现有数组

result = []
result = array.map { |x| x*2 }
#or
result = array.map! { |x| x*2 }
这是一个重复的例子

result = []
array.map { |x| result << x; result << x; } #duplicate
result=[]
array.map{| x | result尽可能做最简单的事情
最简单的方法是使用和对数组进行迭代。例如:

odds = [1, 3, 5, 7, 9]
odds.map { |i| p i*2 }
def double *array
  array.flatten!
  block_given? ? array.map { |i| yield i*2 } : array.map { |i| i*2 }.to_enum
end

enumerator = double 1, 2, 3
#=> #<Enumerator: ...>
enumerator.each { |i| p i }
#=> [2, 4, 6]

double(1, 2, 3) { |i| p i }
#=> [2, 4, 6]
odds = [1,3,5,7,9]
odds.each do |x|
    x *= 2
    print x
end
定义自定义方法 如果需要更多控制,可以创建一个自定义方法来处理块或返回枚举数。例如:

odds = [1, 3, 5, 7, 9]
odds.map { |i| p i*2 }
def double *array
  array.flatten!
  block_given? ? array.map { |i| yield i*2 } : array.map { |i| i*2 }.to_enum
end

enumerator = double 1, 2, 3
#=> #<Enumerator: ...>
enumerator.each { |i| p i }
#=> [2, 4, 6]

double(1, 2, 3) { |i| p i }
#=> [2, 4, 6]
odds = [1,3,5,7,9]
odds.each do |x|
    x *= 2
    print x
end
def double*数组
阵列,展平!
块_给定??array.map{| yield i*2}:array.map{| i | i*2}.到_enum
结束
枚举数=双1,2,3
#=> #
枚举数.each{i | pi}
#=> [2, 4, 6]
双(1,2,3){i|pi}
#=> [2, 4, 6]

对于您的用例来说,这可能有些过分,但了解您是否希望使用枚举数和块是一种有用的技术。希望它能有所帮助!

我发现的方法是将其乘以/等于2。例如:

odds = [1, 3, 5, 7, 9]
odds.map { |i| p i*2 }
def double *array
  array.flatten!
  block_given? ? array.map { |i| yield i*2 } : array.map { |i| i*2 }.to_enum
end

enumerator = double 1, 2, 3
#=> #<Enumerator: ...>
enumerator.each { |i| p i }
#=> [2, 4, 6]

double(1, 2, 3) { |i| p i }
#=> [2, 4, 6]
odds = [1,3,5,7,9]
odds.each do |x|
    x *= 2
    print x
end

它仍在打印相同的值