ruby - 在 Ruby 中是否有一种惯用的方法来操作 2 个数组?

标签 ruby iterator ruby-1.9.3 enumerable

a = [3, 4, 7, 8, 3]
b = [5, 3, 6, 8, 3]

假设数组长度相同,是否有办法使用 each 或其他一些惯用方法从两个数组的每个元素中获取结果?不使用计数器?

例如获取每个元素的乘积:[15, 12, 42, 64, 9]

(0..a.count - 1).each do |i| 太丑了...

ruby 1.9.3

最佳答案

使用 Array.zip 怎么样? :

>> a = [3,4,7,8,3]
=> [3, 4, 7, 8, 3]
>> b = [5,3,6,8,3]
=> [5, 3, 6, 8, 3]
>> c = []
=> []
>> a.zip(b) do |i, j| c << i * j end
=> [[3, 5], [4, 3], [7, 6], [8, 8], [3, 3]]
>> c
=> [15, 12, 42, 64, 9]

注意:我非常不是 Ruby 程序员,所以对于我践踏的任何习语,我深表歉意。

关于ruby - 在 Ruby 中是否有一种惯用的方法来操作 2 个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12966412/

相关文章:

php - 用于在线 Web 编程的 php 替代品?

ruby - 有效地获取枚举器的切片

ruby - 使用 Ruby 从 Windows 文件中提取选定的元数据

python - 嵌套(二维)字典的类迭代器?

java - 如何在Java中实现多维数组的自定义迭代器?

ruby - 如果不是 nil 且不为空则合并数组

segmentation-fault - Ruby 1.9.3-p0 和 RSpec 导致频繁的段错误

ruby-on-rails - 是否有任何库来管理 Rails 应用程序的数据库字段中的 json 内容?

C++11:基于范围的 for 循环遍历由模板化迭代器描述的范围

ruby-on-rails - 未初始化常量设置 Ruby 1.9.3-p125