我正在学习Ruby和新手。有人可以帮我解决这个问题: 添加所有在值中相等的数字并在数组中连续定位。例 我有一个数组= [1,2,2,2,5,2,6],我希望它返回array = [1,6,5,2,6]使用Ruby语言。在此先感谢您的帮助。
答案 0 :(得分:3)
试试这个
[1, 2, 2, 2, 5, 2, 6].chunk_while(&:equal?).flat_map(&:sum)
=> [1, 6, 5, 2, 6]
chunk_while
允许您根据条件对连续元素进行分组。之后,你有n个组(n个数组,可能只有一个元素)。现在你想要map
每个不同的数组(它的元素之和)。最后一个细节:flat_map
,而不是map
,因为我们需要一个数组,而不是一个数组数组。