How can I more elegantly remove duplicate items across all elements of a Ruby Array? -
How can I more elegantly remove duplicate items across all elements of a Ruby Array? -
i want remove duplicate items within array
object. it's best explain example.
i have next array
entries = ["a b c", "a b", "c", "c d"]
i want method clean removing duplicate items within elements in array
, homecoming array
has 1 element each unique item.
so here's method i've written this:
class array def clean_up() self.join(" ").split(" ").uniq end end
so when phone call entries.clean_up
next result:
["a", "b", "c", "d"]
this result want there more elegant way in ruby?
split
splits on whitespace default (assuming of course of study haven't done insane changing $;
). want split each string , flatten results 1 list, time want "do x each element , flatten" want utilize flat_map
. putting yields:
self.flat_map(&:split).uniq
if want split on spaces or don't want depend on sanity, could:
self.flat_map { |s| s.split(' ') }.uniq
or similar.
ruby arrays
Comments
Post a Comment