ruby 在多个数组上映射一个函数

Stu*_*art 2 ruby arrays iteration loops idioms

我有 2 个数组

   asc = [0, 1, 2, 3, 4, 5]
   dsc = [5, 4, 3, 2, 1, 0]
Run Code Online (Sandbox Code Playgroud)

我想要一个新数组,它是将 asc 和 dsc 中的每个相应项相乘的结果

我已经习惯了 Clojure map

(map #(* %1 %2) asc dsc) ;=> (0 4 6 6 4 0)
Run Code Online (Sandbox Code Playgroud)

它们在 Ruby 中是否等效,在 Ruby 中执行此操作的惯用方法是什么?

我是 Ruby 的新手,但它似乎有非常好的简洁解决方案,所以我想我错过了一些东西。

我只是写:

i = 0
res = []

while i < asc.length() do
  res.append(asc[i] * dsc[i])
end
Run Code Online (Sandbox Code Playgroud)

Urs*_*sus 5

使用zip将每个元素与其对应的两个元素数组组合在一起,而不是映射

asc.zip(dsc).map { |a, b| a * b }
 => [0, 4, 6, 6, 4, 0] 
Run Code Online (Sandbox Code Playgroud)