Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 如何从试剂原子向量中删除键/值?_Clojure_Clojurescript_Reagent - Fatal编程技术网

Clojure 如何从试剂原子向量中删除键/值?

Clojure 如何从试剂原子向量中删除键/值?,clojure,clojurescript,reagent,Clojure,Clojurescript,Reagent,我有一个试剂原子,它由键/值映射向量组成 如何删除某个键值恰好是UUID的键值对?我试过: (交换!状态/项目(dissoc@state/items id)) 但我得到: core.cljs:270未捕获错误:没有协议方法IMap.-dissoc为cljs.core/LazySeq类型定义:({:id#uuid“e1f9341f-bc02-4c17-a594-b9b5ede72214”,:description“foo bar”})我认为需要使用删除。因此,这应该有助于: (def data

我有一个试剂原子,它由键/值映射向量组成

如何删除某个键值恰好是UUID的键值对?我试过:

(交换!状态/项目(dissoc@state/items id))

但我得到:


core.cljs:270未捕获错误:没有协议方法IMap.-dissoc为cljs.core/LazySeq类型定义:({:id#uuid“e1f9341f-bc02-4c17-a594-b9b5ede72214”,:description“foo bar”})

我认为需要使用
删除
。因此,这应该有助于:

(def data  [{:id "e1f9341f-bc02-4c17-a594-b9b5ede72214" :description "Foo"} {:id "e1f9341f-bc02-4c17-a594-b9b5ede72214" :description "Bar"}] )
(remove #(= (:id %) "e1f9341f-bc02-4c17-a594-b9b5ede72214") data)
;; => ()
交换函数接受旧值并返回更新后的值。因此,上面的
数据
将是旧值。您传递给
swap的函数将如下所示:

(fn [old]
  (remove #(= (:id %) "e1f9341f-bc02-4c17-a594-b9b5ede72214") old))
我的数据是这样的:[{:id“e1f9341f-bc02-4c17-a594-b9b5ede72214”:description“Foo”}{:id“e1f9341f-bc02-4c17-a594-b9b5ede72214”:description“Bar”},所以我需要删除一个具有特定:id的映射。