添加到地图中的向量

问题描述 投票:0回答:1

说我有一个具有以下结构的节点

(def root {:name "-" :children [{:name "A" :children []}]})

我想向根节点添加第二个孩子。

{:name "B" :children []}

我以为我可以使用update

例如

(update root :children #(conj (:children %) {:name "B" :children []}))

但是,这导致:

{:name "-", :children ({:name "B", :children []})}

即使使用conj,我也丢失了“ A”吗?而且:children向量现在也是列表...

我在这里做错了什么?我使用的是完全错误的功能吗?

clojure
1个回答
0
投票

知道了,在添加子项的函数中,我不需要(:children%)。我应该一直在使用

(update root :children #(conj % {:name "B" :children []}))

看起来函数希望传递:children的原始值,而不是整个地图:)

© www.soinside.com 2019 - 2024. All rights reserved.