ruby - 如何在数字数组中找到最佳匹配元素?

标签 ruby watir-webdriver

我需要一些看似简单但让我感到困惑的事情的帮助。尝试编写一些模糊匹配方法来处理根据需要计算的值与选择列表中实际可用的值之间的格式差异。

值(value)(期权行使价)始终是计算得出的 float ,例如 85.0 或 Int。

该数组包含字符串形式的数字,不可预测的增量或它们是否会显示为某个小数(包括额外的零,如 5.50)或无小数(如 85),例如:

select_list = ["77.5", "80", "82.5", "85", "87.5", "90", "95", "100", "105"]

我不确定如何编写简单的一行或两行代码来返回数组中出现的最接近的匹配元素(按数值)。例如,如果 select_list.contains? 85.0 返回 “85”

实际上,选择选项来自 Watir::Webdriver browser.select_list(:id, "lstStrike0_1") HTML 对象,其可见文本(不是 HTML 值)是那些数字;也许有更直接的方法来调用 browser.select_list(:id, "lstStrike0_1").select X 而不必在 Watir 中弄清楚如何将所有这些选择转换为 Ruby 数组?

最佳答案

xs = ["77.5", "80", "82.5", "85", "87.5", "90", "95", "100", "105"]
xs.min_by { |x| (x.to_f - 82.4).abs } 
#=> "82.5"

关于ruby - 如何在数字数组中找到最佳匹配元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11476878/

相关文章:

ruby - `require` 可以替换为 `require_relative` 吗?

ruby - 如何使用 Mechanize 保存通过单击按钮下载的文件

watir - 您正在使用旧版或标准库版本的 json gem

automation - Watir 中的移动应用程序测试

html - 检测将在 Ruby on Rails 中呈现为空的字符串

ruby-on-rails - 等效于哈希的 .try() 以避免 "undefined method"错误?

ruby - 从 Ruby 中的 MongoDB 嵌套哈希中提取正确的字符串

ruby - 从多个 select_list 元素中选择

ruby - 无法在 watir 中使用 cmd 提示符打开 Firefox 浏览器

ruby - cucumber 嵌入屏幕截图未链接到屏幕截图