簡體   English   中英

檢查特定鍵的哈希值是否包含特定值ruby

[英]check if hash value of specific key contains specific value ruby

我有鍵和多個值的哈希。 現在,我必須檢查特定值是否存在於多個值中。

我的哈希表的結構是這樣的...

@allinfo[hour_idx].push({"id" => w.id, "cat" => w.cat, "value" => w.value})

現在,我要檢查allinfo [hour_idx]鍵的ID是否已經存在。 我正在嘗試使用if(@ allinfo.has_value?(w.id),但無法正常工作,我想這是我是多個值的自定義對象。

我的主要目標是在特定密鑰的值中不要包含多個ID。 我希望我清楚我除了...以外的東西...謝謝

謝謝

如果您是我,則將數據結構更改為哈希而不是數組,然后可以將w.id用作哈希鍵,以進行更簡單(更快速)的檢查。

就是

@allinfo[hour_idx] = {}
@allinfo[hour_idx][w.id] = { "cat" => w.cat, "value" => w.value }

您不清楚是否要用新元素覆蓋現有的w.id元素:

@allinfo[hour_idx][new.id] = { "cat" => new.cat, "value => new.value }

...或者如果已經存在,則不添加新的:

@allinfo[hour_idx][new.id] ||= { "cat" => new.cat, "value => new.value }

如果您願意,即使您使用w.id作為外鍵,也可以繼續將"id" => w.id元素存儲在封閉的哈希中。 然后,您可以簡單地得到與當前相同的散列數組:

@allinfo[hour_idx].values

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM