gpt4 book ai didi

arrays - Ruby - 如何切片数组并根据条件对其元素求和

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:31:34 25 4
gpt4 key购买 nike

我找不到实现以下目标的方法:

  • 给定一个整数数组
  • 每隔一个数字相乘
  • 对所有整数求和

我尝试使用 Enumerble#each_slice 但仍然不知道如何在修改后的数组切片部分上调用 Array#sum:

input =  [6, 8, 2, 4, 4, 4, 5, 5, 0]
input.each_slice(2) {|slice| p slice }
#=>
[6, 8]
[2, 4]
[4, 4]
[5, 5]
[0]

现在我想乘以每对中的每个最后一个元素(可以在乘法之前应用 condition):

[6, 8] => 8 *2
[2, 4] => 4 *2
[4, 4] => 4 *2
[5, 5] => 5 *2
[0]

并将初始数组的所有数字与其相乘的第二个数字相加:

[6, 16, 2, 8, 4, 8, 5, 10, 0].sum

有什么想法吗?谢谢。

最佳答案

另一个选项使用 Enumerable#each_sliceEnumerable#sum ,这需要一个 block :

input.each_slice(2).sum { |a, b| a + 2* (b || 0) }

关于arrays - Ruby - 如何切片数组并根据条件对其元素求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56460707/

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