输入:[{:a "ID1" :b 2} {:a "ID2" :b 4}]
Clojure的:给定的地图列表,获取特定键值的总和值
我只想补充了所有的按键:b
并产生如下:
结果:6
我想过要做一个filter?
把所有的数字都放到向量中,然后把它加起来,但是这好像是在做两次工作。我不能在这里使用merge-with +
,因为:a
中有一个字符串。我是否在这里使用了一个reduce
,并带有一个可以提取相应密钥的功能?
(reduce (fn [x] (+ (x :b))) 0 list-of-maps)
它甚至会更好,如果我能保留与更新后的值({:a "ID1" :b 6})
地图结构,但因为我真的不需要其它按键,只是总金额的罚款。
它是保证每个映射都将包含':B'映射到一定数目的? –