Ruby to_a 方法卡住了

标签 ruby

请原谅我的问题,但我是 Ruby 的初学者。 我有一段代码,不知道如何将输出代码制作成一个数组。我尝试使用 Ruby to_a 方法但不起作用,我确信这真的很简单,但请帮助我!!!

length = 2300                               #line 1
divide = 6                                  #line 2
result = length/divide                      #line 3

1.upto(divide) do |i|                       #line 4
   p foo = i * result                       #line 5
end                                         #line 6

输出是 383,766,1149,1532,1915,2298 但我希望得到 [383,766,1149,1532,1915,2298]

最佳答案

您需要推送(使用 << )您的结果到数组 foo 中例如,像这样的东西:

length = 2300                               #line 1
divide = 6                                  #line 2
result = length/divide                      #line 3

foo = []
1.upto(divide) do |i|                       #line 4
   foo << i * result                        #line 5
end

p foo #=> [383, 766, 1149, 1532, 1915, 2298]

另一种方法:

(1..divide).each_with_object([]) { |r,arr| arr << r*result }

参见 Enumerable#each_with_object

但你真的应该使用 map这里:

part = length/divide 
p (1..divide).map { |idx| idx*part } #=> [383, 766, 1149, 1532, 1915, 2298]

关于Ruby to_a 方法卡住了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41198304/

相关文章:

ruby - 如何评估 `Proc#==`?

ruby-on-rails - 无方法错误 : undefined method `+' for nil:NilClass/ 'additional_paths' [capistrano+webpacker]

ruby - 如何获取具有包含冒号的特定属性的节点?

ruby - 实现比较运算符 - Ruby

javascript - 在 highcharts 中转义单引号

ruby - 我如何使用 expect 来测试小于

ruby-on-rails - 使用 Virtus 的 Rails 表单对象 : has_many association

mysql - RoR Rake 10.4.2 错误 : "Don' t know how to build task 'db:' "

ruby 调试,尝试循环对象实例变量

ruby - 在 VIM 中更改 `rubyLocalVariableOrMethod` 颜色