我有一个对象数组,我想根据2个相邻元素的属性之间的差异对它们进行分组.该数组已按该属性排序.例如:
原始阵列:
array = [a, b, c, d, e]
和
a.attribute = 1
b.attribute = 3
c.attribute = 6
d.attribute = 9
e.attribute = 10
Run Code Online (Sandbox Code Playgroud)
如果我想对元素进行分组,使得2个相邻元素的属性之间的差异小于或等于2,则结果应如下所示:
最终结果
result_array = [[a, b], [c], [d, e]]
是)我有的
def group_elements_by_difference(array, difference)
result_array = []
subgroup = []
last_element_attribute = array.first.attribute
array.each do |element|
if element.attribute <= (last_element_attribute + difference)
subgroup << element
else
#add the subgroup to the result_array
result_array << subgroup
subgroup = []
subgroup << element
end
#update last_element_attribute
last_element_attribute = …Run Code Online (Sandbox Code Playgroud)