Skip to content

Instantly share code, notes, and snippets.

@codeboost
Created April 21, 2015 10:13
Show Gist options
  • Save codeboost/2de361f9e717bea1d48c to your computer and use it in GitHub Desktop.
Save codeboost/2de361f9e717bea1d48c to your computer and use it in GitHub Desktop.
;Source map:
{
"key1" {name: "some1" dependencies: ["dep1" "dep2" "dep3"]}
"key2" {name: "some2" dependencies: ["dep4" "dep3"]}
;and so on
}
; I want to get to this
{
"key1" {name: "some1" dependencies: ["mapped dep1" "mapped dep2" "mapped dep3"]}
"key2" {name: "some2" dependencies: ["mapped dep4" "mapped dep3"]}
;and so on
}
; So basically, map the dependencies array from every value in the source map
@slipset
Copy link

slipset commented Apr 21, 2015

(def src {
    "key1" {:name "some1" :dependencies ["dep1" "dep2" "dep3"]}
    "key2" {:name "some2" :dependencies ["dep4" "dep3"]}
    ;and so on
  })

(defn mapper [s]
        (str "mapped " s))

(into {}
        (map (fn [[k v]] 
                   (vector k (update-in v [:dependencies ] #(into [] (map mapper %))))) src))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment