我有一张地图矢量.我想为每个元素关联一个索引元素.
例:
(append-index [{:name "foo"} {:name "bar"} {:name "baz"}])
应该回来
[{:name "foo" :index 1} {:name "bar" :index 2} {:name "baz" :index 3}]
实现append-index函数的最佳方法是什么?
首先,Clojure开始计算0中的向量元素,所以你可能想要得到
[{:index 0, :name "foo"} {:index 1, :name "bar"} {:index 2, :name "baz"}]
你可以通过功能很容易地做到这一点map-indexed
(defn append-index [coll] (map-indexed #(assoc %2 :index %1) coll))