gpt4 book ai didi

clojure - 如何从 Clojure 中的 map 列表中获取值

转载 作者:行者123 更新时间:2023-12-01 09:03:36 26 4
gpt4 key购买 nike

我有一个 map 列表,我想从中检索给定特定“columnId”的“字段”值。

(def field-to-column-mapping
[{"field" "first_name", "columnId" "1"}
{"field" "last_name", "columnId" "2"}
{"field" "phone", "columnId" "3"}])


(defn get-field-given-column [id]
((some #(if (= id (get % "columnId")) %)
field-to-column-mapping)
"field"))

;; Gets "first_name"
(get-field-given-column "1")

这行得通,但我的直觉告诉我必须有一种更清洁的方法才能做到这一点。

有没有更好的方法呢?

最佳答案

使用 for 编写它可能会在本质上更清晰一些与您问题中的示例相同:

(defn get-field-given-column [id] 
(for [row field-to-column-mapping :when (= (row "columnId") id)]
(row "field")))

> (get-field-given-column "1")
("first_name")

这会返回一系列答案,因为可能不止一行具有相同的键。如果真的只有一个,那么添加对 first 的调用。

关于clojure - 如何从 Clojure 中的 map 列表中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12284476/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com