У меня есть массив хешей
a = [{name:"x", long:1.0, lat:2.0},
{name:"y", long:2.0, lat:3.0},
{name:"z", long:1.0, lat:2.0}]
Как удалить {name:"x", long:1.0, lat:2.0}
, координаты которого равны последнему элементу, Другими словами, мне нужно оставить последним (в моем случае: с name:"z"
) хеш с уникальными координатами и удалить все предыдущие элементы с такими же координатами
1 ответ
Попробуйте использовать Array#uniq
с блоком:
a.uniq { |item| [item[:lat], item[:long]] }
Возвращаемое значение блока используется как значение для сравнения на уникальность.
Непонятно, почему вы хотите удалить «x», а не «z», но вы можете добиться этого с помощью примера набора данных, перевернув массив перед вызовом для него uniq
.
Похожие вопросы
Новые вопросы
ruby
Ruby - это многоплатформенный динамический объектно-ориентированный интерпретируемый язык с открытым исходным кодом. Тег [ruby] предназначен для вопросов, связанных с языком Ruby, включая его синтаксис и его библиотеки. Вопросы Ruby on Rails должны быть помечены [ruby-on-rails].