Удалить повторяющиеся записи в Ruby - PullRequest
0 голосов
/ 04 ноября 2018

Что такое команда для удаления дублирующихся элементов в массиве? Это моя лучшая попытка:

my_array.reject.with_string{s.clone}

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Array#uniq - лучший способ узнать уникальные записи, но в качестве альтернативы вы можете использовать Array#&, который возвращает новый массив, содержащий общие элементы к двум массивам, исключая любые дубликаты .

a = [1, 2, 3, 4, 5, 2, 2, 3, 4]
b = a & a
b #=> [1, 2, 3, 4, 5]
0 голосов
/ 05 ноября 2018

Если вам нужен массив уникальных значений my_array = [1, 2, 3, 3, 4], то сделайте следующее:

my_array.uniq
# => [1, 2, 3, 4]

Если ваш массив содержит объекты с некоторым полем, которое вы хотите сделать уникальным, например, :fname in:

my_array = [
  {fname: "amanze", age: 28}, 
  {fname: "ben", age: 13}, 
  {fname: "ben", age: 4}
]

тогда вам нужно сделать это:

my_array.uniq { |obj| obj[:fname] }
# =>
# [
#   {fname: "amanze", age: 28}, 
#   {fname: "ben", age: 13}
# ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...