我有一个字符串向量(虽然可能是真的),我想创建一个新的映射条目向量,键是一些关键字。
例如,给定:
["foo" "bar" "baz"]
我想要
[{:message "foo"} {:message "bar"} {:message "baz"}]
应用此转换的最惯用方法是什么?
谢谢!
答案 0 :(得分:6)
这是一个意见问题。一些选择:
(into [] (for [x ["foo" "bar" "baz"]] {:message x}))
(mapv hash-map (repeat :message) ["foo" "bar" "baz"])
(mapv (partial assoc {} :message) ["foo" "bar" "baz"])
(reduce #(conj % {:message %2}) [] ["foo" "bar" "baz"])
答案 1 :(得分:1)
我认为A.韦伯提出了一些非常好的选择 我的建议是为广大受众提供可读性:
(mapv (fn[x] {:message x}) ["foo" "bar" "baz"])
另外,如果您不需要矢量,
(map (fn[x] {:message x}) ["foo" "bar" "baz"])
对更多人来说是可读的。