Порядок теряется, когда данные хранятся в хэше - PullRequest
0 голосов
/ 26 октября 2010

Я взял из базы данных и отсортировал ее по позиции. Затем я поместил необходимые данные в хэш. После помещения данных в хеш и я распечатал хеш. Но результат в обратном порядке. Поэтому я хочу изменить хеш. Как я могу это сделать?

Ответы [ 4 ]

6 голосов
/ 26 октября 2010

Я думаю, что вы хотите массив, а не хеш. Хеш действительно для неупорядоченных пар ключ-значение.

4 голосов
/ 26 октября 2010

Вы не должны полагаться на порядок элементов в Хэше :

Порядок, в котором вы проходите хеш по ключу или значению, может показаться произвольным, икак правило, не будет в порядке вставки.

В Ruby 1.9 хэш запоминает порядок вставки, но в Ruby 1.8 и ниже он не запоминает.Если порядок важен для вас, вы должны использовать коллекцию, которая сохраняет порядок элементов.Например, вы можете посмотреть на OrderedHash.

1 голос
/ 26 октября 2010

Похоже, вам нужно использовать что-то, что поддерживает порядок в вашем ключе, пары значений, чего не делает хеш.

0 голосов
/ 27 октября 2010

Вы также можете сформировать массив всех хеш-ключей и отсортировать их по своему усмотрению.Затем вы можете перебирать массив и индексировать хеш своими ключами.

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