Clojure - 更新向量内的哈希映射[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Clojure - 更新向量内的哈希映射[重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我们假设我有以下向量

[{:id "1" :type "type"}, {:id "2" :type "another-type"}]

我想编写一个更新hashmap的函数,具体取决于它的id。

(defn update
  [vector id value]
  ....)

结果将是:

(update vector "1" "value")

[{:id "1" :type "type" :new-key ["value"]}, {:id "2" :type "another-type"}]

执行此更改的最惯用方法是什么?

答案
(mapv 
  (fn [m]
    (if (= "1" (:id m)) (assoc m :new-key ["value"]) m))
  vector)

以上是关于Clojure - 更新向量内的哈希映射[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Clojure 中递归展平任意嵌套的向量和映射?

为啥没有窥视! clojure 瞬态向量的函数?

Clojure按值获取映射键

在 Clojure 中,如何合并两个地图向量?

为啥在 Clojure 的瞬态映射中插入 1000 000 个值会产生一个包含 8 个项目的映射?

哈希映射和映射有啥区别[重复]