加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 如何在数组中找到最匹配的元素?

发布时间:2020-12-16 21:50:14 所属栏目:百科 来源:网络整理
导读:我需要帮助一些似乎很简单但困惑我的东西.尝试编写一些模糊匹配方法,以处理根据需要计算的值之间的格式差异,以及哪些实际上可以从选择列表中获得. 价值(期权执行价格)总是一个计算浮动,如85.0或Int. 数组包含字符串形式的数字,增量不可预测,或者它们是否将被
我需要帮助一些似乎很简单但困惑我的东西.尝试编写一些模糊匹配方法,以处理根据需要计算的值之间的格式差异,以及哪些实际上可以从选择列表中获得.

价值(期权执行价格)总是一个计算浮动,如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”).选择X而不必在Watir中找出如何将所有这些选择转换为Ruby数组?

解决方法

xs = ["77.5","105"]
xs.min_by { |x| (x.to_f - 82.4).abs } 
#=> "82.5"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读