小编AbM*_*AbM的帖子

通过比较2个相邻元素对数组进行分组

我有一个对象数组,我想根据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)

ruby arrays

3
推荐指数
1
解决办法
443
查看次数

标签 统计

arrays ×1

ruby ×1