首页 > 解决方案 > 更新嵌套地图中的向量

问题描述

我目前正在对嵌套地图中包含的向量进行操作:

(def map {:key1 {:key2 [1 2 3]}})

现在我正在寻找最实用的方法来更新该向量中的单个值。我可以通过提取向量来执行隔离更新:

(assoc (get-in map [:key1 :key2]) 2 '(3 4 5))

但是,我没有成功在地图内进行更新。如果功能适用,“update-in”将起作用。但是,我仍然会通过函数发送完整的向量,而不是更新单个值。

标签: clojure

解决方案


您可以assoc-in使用向量中的索引调用:

(assoc-in map [:key1 :key2 2] '(3 4 5))
; => {:key1 {:key2 [1 2 (3 4 5)]}}

推荐阅读