我试图用空字符串替换向量中的重复项.但是,我能找到的唯一功能是删除重复项,而不是替换它们.我该怎么办
["Oct 2016" "Oct 2016" "Nov 2016" "Nov 2016" "Nov 2016" "Nov 2016"]
并输出:
["Oct 2016" "" "Nov 2016" "" "" ""]
我能找到的所有东西都会返回["Oct 2016" "Nov 2016"]我正在通过嵌套来实现所需的输出doseq,但它似乎效率低下.有没有更好的方法来实现这一目标?谢谢!
这是一个解决方案的策略.
loop 在矢量的项目.set访问过的项目.它可用于检查唯一性.""结果向量.码:
(defn duplicate->empty [xs]
(loop [xs (seq xs)
result []
found #{}]
(if-let [[x & xs] (seq xs)]
(if (contains? found x)
(recur xs (conj result "") found)
(recur xs (conj result x) (conj found x)))
result)))
Run Code Online (Sandbox Code Playgroud)
打电话给:
(duplicate->empty ["Oct 2016" "Oct 2016" "Nov 2016" "Nov 2016" "Nov 2016" "Nov 2016"])
=> ["Oct 2016" "" "Nov 2016" "" "" ""]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
240 次 |
| 最近记录: |