根据数组是否为偶数过滤数组中的数字

Filter numbers in array depending on if they are even or not

我正在尝试获取一系列数字,但结果只有 even/odd 与 @low 数字相同 event 是一个 logstash 变量,它有效,@low和@high 是整数。

def filter(event)
    @low = event.get('lowhousenumber').to_i
    @high = event.get('highhousenumber').to_i
    @arr = (@low..@high).to_a.partition { |v| v.even? }

        if @low%1==0
                return event.set('addressrange', @arr[0]) // needs to set even results
        else
                return event.set('addressrange', @arr[1]) // needs to set odd results
        end
end

@low500 且 @high 为 506 时的输出 如果 @low 为 501 且 [=18],则输出应为 500, 502, 504, 506 =] 是 507 输出应该是 501,503,505,507

Logstash 需要 return 一组事件,所以这应该可以解决问题

def filter(event)
    @low = event.get('lowhousenumber').to_i
    @high = event.get('highhousenumber').to_i

    filter = @low.even? ? 'even?' : 'odd?'

    @arr = (@low..@high).to_a.select{|i| i.send(filter) }

    event.set('addressrange', @arr)

    return [event]
end