此代码从地图矢量中提取所有值。
(def vector-of-maps [{:a "1" :b "2"}{:a "3" :b "4"}])
(mapcat vals vector-of-maps)
所以我明白了 (" 1"" 2"" 3"" 4")
我想只从:a 获取值 (" 1"" 3")
我可以用它做什么?
答案 0 :(得分:6)
(def vector-of-maps [{:a "1" :b "2"} {:a "3" :b "4"}])
(map :a vector-of-maps)
产量
("1" "3")
map
将:a
作为一个函数应用,它将从vector-of-maps
中的每个值中提取值。
答案 1 :(得分:1)
你可以这样做:
(map val (filter (comp #{:a} key) (apply concat vector-of-maps)))
说明:
apply concat
将一系列地图转换为所有这些地图中所有键值对的序列filter (comp #{:a} key)
仅保留其键位于单元素集#{:a}
map val
获取每个剩余键值对的值示例:
(def vector-of-maps [{:a "1" :b "2"} {:a "3" :b "4"}])
(map val (filter (comp #{:a} key) (apply concat vector-of-maps)))
;=> ("1" "3")