DL
Size: a a a
DL
DL
OR
OR
DL
OR
DL
OR
OR
DL
OR
DL
OR
OR
OR
OR
OR
AB
(defn to-tree [paths data]
(->>
(partition 2 data)
(reduce
(fn [{:keys [path] :as acc} [k v]]
(if-let [change-path (paths k)]
(assoc acc :path change-path)
(update-in acc (cons :data path) #(assoc %1 k v))))
{:path [], :data {}})
:data))
(to-tree {:push/q [:q]} [:a 1 :b 2 :push/q "" :a 3 :b 4])
; => {:a 1, :b 2, :q {:a 3, :b 4}}
MB
А