required_keys = [ "a", "b", "c" ]
藥劑檢查,如果地圖包含鍵
map_to_check = %{ "x" => "foo", "y" => "bar", "z" => "baz" }
鑑於上述required_keys列表和map_to_check地圖列表,我怎麼能輕易測試,如果map_to_check包含所有required_keys名單發現,在藥劑的鑰匙?
我知道我可以使用Map.has_key?(map_to_check, "a")
檢查一個值是否存在。
,並試圖遍歷required_keys因爲我用Enum.map像這樣給了我一個錯誤:
Enum.map(required_keys, fn k -> Map.has_key?(Map.keys(map_to_check), k) end)
以上沒有工作,因爲Enum.map不遍歷列表。
編輯
從尋找問題的答案,我發現我的解決方案沒有工作的原因是不是因爲Enum.map無法遍歷列表,而是由於事實我經過在列表中Map.has_key?
函數調用Map.keys(map_to_check)
所以下面的替代也應努力:
Enum.map(required_keys, fn k -> Map.has_key?(map_to_check, k) end)
http://stackoverflow.com/questions/36775591/proper-way-to-determine-if-a-map-has-certain-keys/36775754#36775754 – Dogbert