这是使用Ruby 1.9。
我有一个delete_if块:
@logHash[date].delete_if{ | logItem | logItem.name == name }
其中logItem.name
是logItem
的名称,而name
是我正在寻找的logItem
的名称。这样可以正常工作,除非它使用指定的logItem
删除每个name
。有没有办法找到具有相等name
的第一个项目,只删除它?因此,如果有两个logItem具有相同的name
,我只想删除其中一个。有什么想法吗?
答案 0 :(得分:2)
我使用Array#index
查找具有匹配名称的第一个项目的索引,然后Array#delete_at
删除它。
index_to_delete = @logHash[date].index {|log_item| log_item.name == name}
@logHash[date].delete_at(index_to_delete)