Skip to content

Instantly share code, notes, and snippets.

@drusellers
Created July 12, 2014 01:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save drusellers/dca7bc2f46ae9ecb6785 to your computer and use it in GitHub Desktop.
Save drusellers/dca7bc2f46ae9ecb6785 to your computer and use it in GitHub Desktop.
update-array surely there is a better way
(defn add-athlete [leaderboard division-id athlete]
(let [divs (:divisions leaderboard) ; [{:id 22 :name "Mens"} {:id 23 "Womens" }]
indexed-divs (map-indexed vector divs) ;([0 {}] [1 {}])
div-index (first (first (filter #(= division-id (:id (second %))) indexed-divs)))]
(update-in leaderboard [:divisions div-index :athletes] #(conj % athlete))))
(def leaderboard {:divisions [{:id 22 :name "Mens" :athletes []} {:id 23 "Womens" :athletes []}]})
(add-athlete leaderboard 22 "Dru Sellers")
;{:divisions [{:id 22 :name "Mens" :athletes ["Dru Sellers"]} {:id 23 "Womens" :athletes []}]}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment