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

时间:2018-03-01 10:03:50

标签: clojurescript

我有如此可怕的JavaScript代码

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

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

2 个答案:

答案 0 :(得分:2)

(-> (aget (.-items response) 0)
    (.. -fields -image -fields -file -url))

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

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

答案 1 :(得分:0)

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

(oget o "k3.?k31.k311")
(oget o "k3" "?k31" :k311)
(oget o ["k3" "?k31" "k311"])
(oget o [["k3"] "?k31"] "k311")