问题描述
我有地图矢量
cards_vector = [{...} {...} ...]
和一个原子
(def cards_map (atom {})
对于cards_vector
中的每个地图,我想通过键card-n
将地图添加到cards_map,其中n从1递增到count(cards_vector)
。因此,cards-map
应该返回
{:card-1 {...}
:card-2 {...}
...
:card-n {...}}
解决方法
我建议以下代码段:
(->> [{:a 1} {:b 2}]
(map-indexed (fn [idx value] [(keyword (str "card-" idx)) value]))
(into {}))
;; => {:card-0 {:a 1},:card-1 {:b 2}}
但我同意cfrick的评论。选择形状为:card-X
的键似乎并不实际。但是你可以做到:)
另一种解决方案,更接近命令式编程,但可能不如map-indexed:
(into {} (for [k (range (count @cards_map))] [(keyword (str "card-" k)) (nth @cards_map k)]))