我正在尝试将值从复杂的列表结构中提取出来。
鉴于这样的事情:
[{:a "whatever" :b [:c "foo"]} :e {:f "boo"} :g {:h [:i 62281]}]
我想得到:
["whatever" "foo" "boo" 62281]
到目前为止,我只到了这一点:
((62281) nil (boo) nil whatever foo)
这是代码:
(defn get-values [params]
(apply conj
(map (fn [part]
(if (not (keyword? part))
(map (fn [v]
(if (vector? v)
(last v)
v))
(vals part))))
params)))
- 我似乎无法摆脱 nil 的
- 我无法弄清楚为什么某个点之后的值在列表中。
- 我认为必须有更好的方法来做到这一点。