与其说是要解决的问题,不如说是对语法的好奇...

我有两个长度相等的数组,希望同时对它们进行迭代——例如,在某个索引处输出它们的值.

@budget = [ 100, 150, 25, 105 ]
@actual = [ 120, 100, 50, 100 ]

我知道我可以使用each_index并索引到数组中,如下所示:

@budget.each_index do |i|
  puts @budget[i]
  puts @actual[i]
end

有没有Ruby way个更好的办法?这是什么?

# Obviously doesn't achieve what I want it to - but is there something like this?
[@budget, @actual].each do |budget, actual|
  puts budget
  puts actual
end

推荐答案

>> @budget = [ 100, 150, 25, 105 ]
=> [100, 150, 25, 105]
>> @actual = [ 120, 100, 50, 100 ]
=> [120, 100, 50, 100]

>> @budget.zip @actual
=> [[100, 120], [150, 100], [25, 50], [105, 100]]

>> @budget.zip(@actual).each do |budget, actual|
?>   puts budget
>>   puts actual
>> end
100
120
150
100
25
50
105
100
=> [[100, 120], [150, 100], [25, 50], [105, 100]]

Ruby相关问答推荐

运行跳过的RSpec测试,如果通过则失败

有没有办法把条件语句写得更干净?

数组切片中没有左边框的Ruby范围

使用 Ruby,是否可以将 BigDecimal("1") / BigDecimal("3") 打印为 0.3333333333333... 到任意长度?

创建线程安全的临时文件名

Ruby:p *1..10中的星号是什么意思

Ruby 将字符串转换为方法名

如何拯救 Ruby 中的 eval?

对具有相同键的 2 个哈希属性求和

如何使用 if..else 块的结果分配变量?

在 Ruby 中将数组转换为索引哈希

不区分大小写的数组#include?

rbenv、rvm 和 chruby 有什么区别?

如何在 Ruby 中做标准差?

使用 Ruby CSV 在导出的 CSV 中更改字段分隔符/分隔符

Xcode - 配置:错误:在 $PATH 中找不到可接受的 C 编译器

如何在 jekyll markdown 博客中包含视频

使用正则表达式进行 Ruby Electron邮件验证

Ruby - 无法修改冻结的字符串 (TypeError)

严格将字符串转换为整数(或 nil)