如何通过集合绑定?

时间:2016-05-31 22:50:25

标签: collections clojure

如何通过列表匹配值?在我的情况下,我有一个颜色列表 -

["Black", "Lavender", "Brazen", "Army", "Birch"] 

我有这个函数创建颜色名称和相关URL的集合:

    (combine-color-imgurl get-product-images)
=>
[("Black"
  "example.com/WWbNhro1n3YfmQTx1q5Piv1j8lZzse6M-25_2a353315-9965-457f-83f8-32af89f3b067.jpeg")
 ("Lavender"
  "example.com/trWCTNYNOfiA8EBX9HZcxVB1Hg8pVtr9-25_403cbe3e-9894-4ad6-9f69-dedcfd7ef77b.jpeg")
 ("Brazen"
  "example.com/COYrBHEsiOgdeOfxsQGcw8XXynsVdpxy-25_af0a9ff9-b988-467e-9b39-c4ae572420e8.jpeg")
 ("Army"
  "example.com/YWKhJXFM0dKhJuRXphCXD4TWstnZRRJm-25_b3a2e43c-3c8c-4abc-83d2-d00d9b3ed594.jpeg")
 ("Birch"
  "example.com/IRsHVjavdFsybvmpT6xjnpKqMtjyjeoZ-25_6321e4ef-5bed-463f-990a-1857151b8a11.jpeg")]

我不确定如何只获取与颜色相关的网址。

所以函数就像是

(defn get-url [color]
  (some-operation (combine-color-imgurl get-product-images)))

=> URL 

1 个答案:

答案 0 :(得分:2)

如Juan所述,解决方案是让combine-color-imgurl返回地图,然后使用

(get (into {} (combine-color-imgurl get-product-images)) color)

获取网址。