arrays - 根据是否偶数过滤数组中的数字
问题描述
我正在尝试获取一系列数字,但只有结果与偶数/奇数相同,因为该@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
when @low
is500
和 @high506
的输出应该是500, 502, 504, 506
if@low
是 501 并且@high
是507
输出应该是501,503,505,507
解决方案
Logstash 需要返回一个事件数组,所以这应该可以解决问题
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
推荐阅读
- java - Java 使用 HTTP POST 发送整数值
- r - R markdown:在评估之前从代码块访问变量
- max - 如何在 Open Office Calc 列中标记最小值和最大值?
- python - 正则表达式在匹配递归之前和之后返回 X 个单词
- android - 使用不同版本的 MotionLayout 和 ConstraintLayout 依赖项
- apache-spark - pyspark wordcount 按值排序
- python - 在文件中保存和读取`\r` - Python 3
- docker - 从 Azure IoT Edge 的模块中访问 Raspi 上的 /dev/serial0 时遇到问题
- android - 设置超时时,HttpURLConnection SocketTimeoutException 不起作用
- mongodb - 如果 mangodb 中的键是随机的,如何对对象的值应用正则表达式搜索?