1

このコレクションを変換する最も簡単な方法は次のとおりです。

[[{:a 1} {:a 2} {:a 3}] [{:b 4} {:b 5} {:b 6}] [{:c 7} {:c 8} {:c 9}]]

このコレクションに?:

[{:a 1, :b 4, :c 7} {:a 2, :b 5, :c 8} {:a 3, :b 6, :c 9}]

私はこれを思いつきましたが、それでももっと短くなる可能性があると感じています:

(map (partial apply merge) 
     (apply map vector collection))

各値の内容が一意であることを示すために、数字はランダムに選択されていることに注意してください...

4

1 に答える 1

5
(def data [[{:a 1} {:a 2} {:a 3}] [{:b 4} {:b 5} {:b 6}] [{:c 7} {:c 8} {:c 9}]])

(apply mapv merge data)
;=> [{:a 1, :c 7, :b 4} {:a 2, :c 8, :b 5} {:a 3, :c 9, :b 6}]
于 2013-05-14T17:23:01.290 に答える