从一个序列中,我需要获取给定项目出现的所有位置。
我问自己这是否是解决问题的好方法:
(defn get-positions [item coll]
(->> (map-indexed vector coll)
(filter (fn [[_ v]] (= item v)))
(map first)))
这也适用于字符串,它们将被第一个映射转换为序列。但是,如果我知道输入是字符串,那么这个问题会有更多字符串特定的方法吗?
答案 0 :(得分:2)
既然您已经有了问题的一般解决方案,那么您为什么要花费更多精力来尝试提出更具体的解决方案呢?这样做的好处可以忽略不计。
只是为了各种各样,这是实现你的功能的另一种方式:
(defn positions [x coll]
(keep-indexed #(when (= x %2) %1) coll))