Сортировка значений в каждом ключе в Ruby - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть хэш в моем Ruby-коде, значения которого для каждого ключа являются несколькими массивами.Я хотел бы отсортировать значения значения для каждого ключа.На самом деле я хотел бы отсортировать каждый элемент в каждом массиве так, чтобы сортировать каждый отдельный элемент из всех массивов.Я думал о том, чтобы сделать значения одним массивом для каждого ключа и отсортировать их.Есть ли способ сделать это легко?

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Майкл. Я полагаю, что у вас есть следующий хеш data = {:a=>[5, 2, 1, 3, 4], :b=>[7, 1, 3, 4]} Теперь для их сортировки:

1) если вы хотите отсортировать значения, соответствующие ключам, используйте

data.update(data){ |k,v| v.sort }

, что дает {:a=>[1, 2, 3, 4, 5], :b=>[1, 3, 4, 7]}

2) если вы хотите получить все отсортированные значения, используйте data.flat_map(&:last).sort

, это приведет к: [1, 1, 2, 3, 3, 4, 4, 5, 7] #sorted values array

0 голосов
/ 14 февраля 2019

Похоже, что flat_map может быть хорошим началом: https://ruby -doc.org / core-2.5.1 / Enumerable.html # method-i-flat_map

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