gpt4 book ai didi

ruby 在每个 block 中添加范围元素

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

如何将每个 block 中的范围元素添加在一起。例如:

a = [[1..10, 13..20, 21..24], [34..39, 42..45], [50..55]]

结果:

a = [[9+7+3],[5+3],[5]]
a = [20, 8, 5]

最佳答案

您可以通过相应的firstlast 方法访问范围的第一个和最后一个元素。 inject(:+) 对属于同一组的所有范围的部分距离求和。

a.map { |ran­ges| range­s.map { |rang­e| range­.last - range­.first }.inj­ect(:+) }
=> [19, 8, 5]

或者,甚至更短,正如 tokland 使用 Ruby 2.0 所建议的那样:

a.map { |ran­ges| range­s.map(&:size).reduce(0, :+) }

关于ruby 在每个 block 中添加范围元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23607512/

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