Skip to content

Instantly share code, notes, and snippets.

@phiggins
Created August 1, 2014 20:26
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 phiggins/741a4d305c70d9113c06 to your computer and use it in GitHub Desktop.
Save phiggins/741a4d305c70d9113c06 to your computer and use it in GitHub Desktop.
> elements = {a1: 'a', b1: 'b', b2: 'b', b3: 'b', c1: 'c'}
=> {:a1=>"a", :b1=>"b", :b2=>"b", :b3=>"b", :c1=>"c"}
> elements.group_by {|(_, val)| val }.flat_map {|(_, vals)| vals.shuffle }
=> [[:a1, "a"], [:b2, "b"], [:b3, "b"], [:b1, "b"], [:c1, "c"]]
> elements.group_by {|(_, val)| val }.flat_map {|(_, vals)| vals.shuffle }
=> [[:a1, "a"], [:b1, "b"], [:b3, "b"], [:b2, "b"], [:c1, "c"]]
> elements.group_by {|(_, val)| val }.flat_map {|(_, vals)| vals.shuffle }
=> [[:a1, "a"], [:b1, "b"], [:b3, "b"], [:b2, "b"], [:c1, "c"]]
> elements.group_by {|(_, val)| val }.flat_map {|(_, vals)| vals.shuffle }
=> [[:a1, "a"], [:b2, "b"], [:b1, "b"], [:b3, "b"], [:c1, "c"]]
> elements.group_by {|(_, val)| val }.flat_map {|(_, vals)| vals.shuffle }
=> [[:a1, "a"], [:b3, "b"], [:b2, "b"], [:b1, "b"], [:c1, "c"]]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment