Skip to content

Instantly share code, notes, and snippets.

@shunsugai
Last active December 13, 2015 19:58
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 shunsugai/4965927 to your computer and use it in GitHub Desktop.
Save shunsugai/4965927 to your computer and use it in GitHub Desktop.
たぶんこれでOK
require 'pp'
data = [
{:code => 001, :item => {:name => 'jan'}},
{:code => 001, :item => {:name => 'jan'}},
{:code => 001, :item => {:name => 'aaa'}},
{:code => 002, :item => {:name => 'feb'}},
{:code => 002, :item => {:name => 'aab'}},
{:code => 003, :item => {:name => 'mar'}},
{:code => 003, :item => {:name => 'abb'}},
{:code => 003, :item => {:name => 'foo'}},
{:code => 004, :item => {:name => 'apr'}},
{:code => 004, :item => {:name => 'bar'}},
{:code => 004, :item => {:name => 'bar'}},
{:code => 005, :item => {:name => 'may'}},
{:code => 005, :item => {:name => 'baz'}},
{:code => 005, :item => {:name => 'bbb'}}
]
uniq_list = []
data.uniq.inject(Hash.new){|prev, item| uniq_list << item if prev[:code] != item[:code]; item}
pp uniq_list
#[{:code=>1, :item=>{:name=>"jan"}},
# {:code=>2, :item=>{:name=>"feb"}},
# {:code=>3, :item=>{:name=>"mar"}},
# {:code=>4, :item=>{:name=>"apr"}},
# {:code=>5, :item=>{:name=>"may"}}]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment