基于另一个向量的长度动态创建向量

时间:2017-10-10 08:29:18

标签: clojure

我试图创建一个键向量来传递给assoc-in来描述插图应该在地图中的位置。第二个未知大小的向量将决定我需要根据其长度进行关联的位置。

例如,如果向量的长度

  • 是1)我需要关联[:aggs:bucket-aggregation:aggs]

  • 是2)我需要关联[:aggs:bucket-aggregation:aggs:bucket-aggregation:aggs]

我有以下内容,但无法让矢量动态增加。

@data

1 个答案:

答案 0 :(得分:0)

根据我对你的问题的理解,我会选择这样的事情:

user> (defn make-query [based-on-v]
        (vec
         (apply concat [:aggs]
                (repeat (count based-on-v) [:bucket-aggregation :aggs]))))
#'user/make-query

user> (make-query [1])
;;=> [:aggs :bucket-aggregation :aggs]

user> (make-query [1 2])
;;=> [:aggs :bucket-aggregation :aggs :bucket-aggregation :aggs]