根据数组是否为偶数过滤数组中的数字
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
当 @low
为 500
且 @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
我正在尝试获取一系列数字,但结果只有 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
当 @low
为 500
且 @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