gpt4 book ai didi

ruby - 将数组的偶数索引元素乘以 2,并将数组的奇数索引元素乘以 3?

转载 作者:太空宇宙 更新时间:2023-11-03 17:15:45 26 4
gpt4 key购买 nike

我有以下数组,其中包含从 1 到 10 的所有数字:

numbers = [1,2,3,4,5,6,7,8,9,10]

我想将每个偶数索引元素乘以 2,每个奇数索引元素乘以 3。我希望我的数组看起来像:

[2,6,6,12,10,18,14,24,18,30]

我尝试了以下解决方案:

numbers.select do |x|
if x.even?
x * 2
else
x * 3
end
puts x
end

不幸的是,这没有用。谁有更好的方法?

最佳答案

看起来您希望每个偶数 索引 乘以 2,奇数索引乘以 3。

这应该可以解决问题

numbers = [1,2,3,4,5,6,7,8,9,10]
numbers.map!.with_index { |n, i| i.even? ? n * 2 : n * 3 }
p numbers
# => [2,6,6,12,10,18,14,24,18,30]

至于您的尝试,#select 从枚举器中选择 元素,只要 block 的结果为真。当您想就地修改枚举器时,您应该使用 #map!#with_index 方法可用于所有枚举器以在您的 block 中包含索引。

关于ruby - 将数组的偶数索引元素乘以 2,并将数组的奇数索引元素乘以 3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24453745/

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