将Monstrous JavaScript代码转换为优雅的Clojurescript代码

问题描述 投票:2回答:2

我有这么糟糕的JavaScript代码

response.items[0].fields.image.fields.file.url

我可以将它转换为ClojureScript地图,但要访问该字段,我将不得不键入怪异的不可读访问。有没有办法以优雅和优雅的方式做到这一点?

clojurescript
2个回答
2
投票
(-> (aget (.-items response) 0)
    (.. -fields -image -fields -file -url))

或者如果您已将其转换为Clojure数据结构:

(-> response :items first :fields :image :fields :file :url)

0
投票

我建议使用cljs-oops库。它支持对象图的嵌套“选择器”,例如:

(oget o "k3.?k31.k311")
(oget o "k3" "?k31" :k311)
(oget o ["k3" "?k31" "k311"])
(oget o [["k3"] "?k31"] "k311")
© www.soinside.com 2019 - 2024. All rights reserved.