gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 08:30:20 26 4
gpt4 key购买 nike

我有两个数组

   asc = [0, 1, 2, 3, 4, 5]
dsc = [5, 4, 3, 2, 1, 0]

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

我习惯了 Clojure,我只需要 map

(map #(* %1 %2) asc dsc) ;=> (0 4 6 6 4 0)

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

我是 Ruby 的新手,但它似乎有非常简洁的解决方案,所以我想我遗漏了什么。

我只是写:

i = 0
res = []

while i < asc.length() do
res.append(asc[i] * dsc[i])
end

最佳答案

使用zip将每个元素与其对应的元素组合在两个元素数组中,然后映射

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

关于arrays - ruby 在多个数组上映射一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64921691/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com