今天下午我的大腦試圖弄清楚這一點。一般來說,我對Clojure和Lisp相當陌生。我有一個數據結構,它是一個地圖矢量,我希望將所有地圖中特定鍵的所有值都轉換爲另一個矢量。Clojure - 從hashmaps矢量中提取值
例如,讓我們說這是必然myvec會圖的矢量:
[ { "key1" "value1" "key2" "value2"} {"key1" "value3" "key2" "value4"} ]
,我想,看起來像
[ "value1" "value3" ]
由該鍵的所有值的矢量「KEY1」
我能想到的,做到這一點的唯一方法是
(for [i (range (count(myvec)))] ((myvec i) "key1"))
有沒有更簡單的方法?似乎必須有。
謝謝。
謝謝。正是我在找什麼。我正在將查詢中的鍵和值拉出來。我回到了「State:Closed」之類的東西,並且設置了一個像{「State」「Closed」}這樣的hashmap。這就是爲什麼我不使用:關鍵字。或者還有一些方法可以使用關鍵字? – 2011-04-20 00:07:31
您可以使用'keyword'函數將字符串轉換爲關鍵字。不值得去做,如果你只在地圖上看過一次,但是例如'(into {}(for [[kv] mymap] [(keyword k)v]))會將地圖中的所有鍵轉換爲關鍵字(當前被認爲是字符串)。 – amalloy 2011-04-20 07:41:42