Как я могу найти индекс массива, который имеет объекты в Rails? - PullRequest
6 голосов
/ 20 января 2012

У меня есть массив объектов, и я хочу найти, какой элемент в массиве имеет определенный атрибут, равный значению, в частности, какой элемент в этом массиве имеет объект, у которого :parent_id равен 55.

Как я могу это сделать?

Ответы [ 3 ]

10 голосов
/ 20 января 2012

Чтобы найти индекс:

 array.index{ |item| item.parent_id == 55 }

Чтобы найти предмет:

array.find{ |item| item.parent_id == 55 }
0 голосов
/ 20 января 2012

Я бы использовал Enumerable # select Docs

results = my_array.select do |item|
  item[:parent_id] == 55
end
0 голосов
/ 20 января 2012
 array.collect{|a| a[:parent_id]==55 ? a : nil}.compact!

должен сделать работу.Сначала соберите все элементы, соответствующие вашим критериям, в новый массив, а затем удалите ложноположительные (ноль) элементы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...