我可以在ClojureScript中提前返回(中间函数)吗?

时间:2015-08-10 16:32:54

标签: clojurescript

我有一个函数,它迭代一个中等大小的字符串列表,并查看从服务器返回的一些JSON,以确定数据中是否存在值。代码将运行多次,所以我希望它快速。一旦找到我正在寻找的价值,我有什么方法可以回来吗?

(defn find-type [js-data-set]
  (doseq [type all-type-strs]
    (when (aget js-data-set type)
      (return true)))) ; is there a way to do this?

1 个答案:

答案 0 :(得分:4)

内置的some函数将找到与谓词匹配的第一个值,这非常适合这种情况。更一般地说,您可以使用loop / recur,但这很少是最惯用的选项。

(defn find-type [js-data-set]
  (some #(goog.object/get js-data-set %) all-type-strs))