小编Bri*_*anN的帖子

合并地图,但有些值为零

所以我有两个可以是任何东西的地图,我想合并它们,但不包括为零的值。假设我有:

(def x {:a "A" :c 5 :d "D"})
(def y {:a 1 :b 2 :c nil})
Run Code Online (Sandbox Code Playgroud)

我想结束

{:a 1 :b 2 :c 5 :d "D"}
Run Code Online (Sandbox Code Playgroud)

如果我只是像 (merge xy) 那样合并,我会得到错误的 :c 值,但是 {:c nil} 在那里。我无法控制进入的两张地图。任何帮助将不胜感激

clojure hashmap

1
推荐指数
2
解决办法
108
查看次数

如何将哈希图的所有键值对传递给函数(不传递整个哈希图)?

我想将哈希映射的所有键值对传递到函数中,但不是整个哈希映射。

所以我有一个我无法改变的功能,看起来像这样:

(defn foo [a b c & {:keys [x y z]}]
  (println x y z))
Run Code Online (Sandbox Code Playgroud)

我有一个哈希图,它将具有可变数量的键和值。假设一个实例是:

(def bar {:d 1
          :e 2
          :x "x"
          :y "y"})
Run Code Online (Sandbox Code Playgroud)

如何在不传递整个哈希图的情况下将所有键值对调用传递到 foo 中?我想要做

(foo "a" "b" "c" 
     :d 1
     :e 2
     :x "x"
     :y "y")
Run Code Online (Sandbox Code Playgroud)

clojure hashmap

0
推荐指数
1
解决办法
118
查看次数

循环遍历一系列懒惰的地图并更改其中一个地图中的一个值

我有一些地图的懒惰序列。
我想遍历每个地图并执行:
if (= :b "this one") 然后将 :c 更改为 99。

({:a 1
  :b "this one"
  :c 100}
 {:a "A"
  :c "Q"
  :z "Z"})
Run Code Online (Sandbox Code Playgroud)

clojure

0
推荐指数
1
解决办法
62
查看次数

标签 统计

clojure ×3

hashmap ×2