如何根据clojure中另一个向量的值对一个向量进行排序

use*_*944 2 sorting clojure

如何根据另一个向量的值对一个向量进行排序?

说我有预定义的顺序:

(def order ["0M","6M","1Y","2Y","3Y"])
Run Code Online (Sandbox Code Playgroud)

我有另一个向量["0M","1Y","6M"](可能包含也可能不包含向量"order"的所有元素)

输出应该是 ["0M","6M","1Y"]

Bey*_*mor 5

(def order ["0M","6M","1Y","2Y","3Y"])

(sort-by #(.indexOf order %) ["0M", "1Y", "6M"]) ; ("0M" "6M" "1Y")
Run Code Online (Sandbox Code Playgroud)

请注意,sort-by返回一个序列.如果您绝对需要矢量结果,则可以将输出提供给vec.