我有一个地图,其中每个键都有一个集合作为值:
{:name ["Wut1" "Wut2"] :desc ["But1" "But2"]}
Run Code Online (Sandbox Code Playgroud)
可以假设值集合具有相同数量的元素.
如何将其转换为列表(或向量),其中每个元素都是一个映射,其中键是原始集合中的键,值是1值,如:
[{:name "Wut1" :desc "But1"} {:name "Wut2" :desc "But2"}]
Run Code Online (Sandbox Code Playgroud)
应该说,按键的数量是以前不知道的(所以我不能硬编码的:name和:desc)
(fn [m]
(let [ks (keys m)]
(apply map (fn [& attrs]
(zipmap ks attrs))
(vals m))))
Run Code Online (Sandbox Code Playgroud)
apply map以"转",在列表中,列出了(vals m)从"为每个属性的值的列表,它应该有"为"为每个对象,它应该具有的属性列表".zipmap 与第一部分中提取的键一起返回.| 归档时间: |
|
| 查看次数: |
71 次 |
| 最近记录: |