Что за «Rubyist» способ сделать следующую структуру данных преобразования:Идиоматические Ruby: структура данных преобразования
У меня есть
incoming = [ {:date => 20090501, :width => 2}, {:date => 20090501, :height => 7}, {:date => 20090501, :depth => 3}, {:date => 20090502, :width => 4}, {:date => 20090502, :height => 6}, {:date => 20090502, :depth => 2}, ]
, и я хочу, чтобы свернуть их по: дате, чтобы в конечном итоге
outgoing = [ {:date => 20090501, :width => 2, :height => 7, :depth => 3}, {:date => 20090502, :width => 4, :height => 6, :depth => 2}, ]
массив массивов также будет прекрасно на последнем шаге, при условии, что столбцы находятся в том же порядке, в каждой строке. Кроме того, что важно, я не знаю всех хэш-ключей заранее (то есть, я не знаю: width,: height, или: depth - они могут быть: кошки, собаки и хомяки).
Если заказ важен, чем вы * хотите * массивы. Опора на хеш-порядок - плохая идея и работает только в Ruby 1.9. – Chuck
Да, но если я сохраню структуру хеша, тогда мои ключи дадут мне любой заказ, который мне нужен.Я просто сделал дополнительный комментарий о заказе массива массивов, потому что нет возможности вернуть его обратно после факта, если у меня есть неупорядоченный подматрица. –