clojure:如何通过索引从向量中获取多个项目

clojure: how to get several items by index out of vector

我正在使用以下代码按 [1 2] 的索引提取数据,是否有更短的解决方案?

(vec (map #(nth ["a" "b" "c"] % ) [1 2]))

mapv 映射到向量中,向量在作为函数应用时进行索引查找

(mapv ["a" "b" "c"] [1 2])

如果你想要ONLY一个向量的第一个和第二个索引,有很多方法...

一个简单的sub vector可以用来将第一个索引持久化到第三个索引。

(subvec ["a" "b" "c"] 1 3)

您可以 map the vector 并将您的向量应用到第一个和第二个索引到 return 最后两个索引作为向量。

(mapv ["a" "b" "c"] [1 2])

使用 thread-last 宏,您可以获取 3 个索引并删除第一个。

(->> ["a" "b" "c"] (take 3) (drop 1))

如果您有一个用 n 个索引定义的向量,而您只需要最后 n 个索引,则将基数 0 删除到 return 最后 n 个。

(drop 1 ["a" "b" "c"])