ruby - 在 Ruby 中,有没有办法在由结构组成的数组中获取项目的索引?
问题描述
使用普通数组,我可以使用arrayname.find_index('whatimlookingfor')
来获取数组中的位置。
当数组的元素是 Struct 时,我不知道该怎么做。
场景:我有一个由 ID 和文件名组成的结构。在一个函数中,我需要在该数组中找到与我当前正在处理的文件不同的文件的 ID。我知道另一个文件名,所以我希望我可以做类似的事情:
arrayname.filename.find_index(parsedfilename)
但这显然失败了。如果不遍历整个数组,有没有办法快速引用匹配发生位置的索引?还是我运气不好,因为数组是结构的集合?
解决方案
index
(same as find_index
) 需要一个块,您可以在其中为您的查找器编写任何真/假逻辑。要查找文件名不匹配的第一个项目的索引parsedfilename
...
found_index = items.index { |item| item.filename != parsedfilename }
许多与 Arrays 和Enumerables一起使用的方法也使用块。
推荐阅读
- android - Flutter 无法运行
- c# - “无法将 lambda 表达式转换为类型 'Type',因为它不是委托类型”不断显示
- kotlin - 如果没有作为函数参数传递,则使用接口的默认实现
- python - Python 语句 x=x+1 是如何实现的?
- jquery - JQuery DateTimePicker 不使用不显眼的验证进行验证
- python - 在窗口的顶部中心显示一个 QLabel
- java - 如何将变量的值添加到 Java 中的数组中?
- node.js - puppeteer 触发 ajax 并获取响应数据
- javascript - Node js-无法定义块常量
- pdf - 我可以将自定义 ID 安全地存储在 PDF 表单字段中的哪些属性中?