рубиновый массив массивов - PullRequest
12 голосов
/ 08 марта 2012

У меня проблема с выяснением, как я могу отсортировать массив массива.Оба массива являются прямыми, и я уверен, что это довольно просто, но я не могу понять это.

Вот массив:

[["happy", 1], ["sad", 2], ["mad", 1], ["bad", 3], ["glad", 12]]

Я хочу отсортировать его поцелочисленное значение внутреннего массива, представляющее собой число повторений слова, сначала наибольшее число.

Ответы [ 4 ]

31 голосов
/ 08 марта 2012

Попробуйте либо:

array = [["happy", 1], ["sad", 2], ["mad", 1], ["bad", 3], ["glad", 12]]
sorted = array.sort {|a,b| a[1] <=> b[1]}

Или:

array = [["happy", 1], ["sad", 2], ["mad", 1], ["bad", 3], ["glad", 12]]
sorted = array.sort {|a,b| b[1] <=> a[1]}

В зависимости от того, хотите ли вы подняться или спуститься.

2 голосов
/ 08 марта 2012
Сортировка

может использоваться с блоком.

a = [["happy", 1], ["sad", 2], ["mad", 1], ["bad", 3], ["glad", 12]]
a.sort { |o1, o2| o1[1] <=> o2[1] }
#=> [["happy", 1], ["mad", 1], ["sad", 2], ["bad", 3], ["glad", 12]] 
1 голос
/ 08 марта 2012

Это должно делать то, что вы хотите.

a = [["happy", 1], ["sad", 2], ["mad", 1], ["bad", 3], ["glad", 12]]
a.sort {|x,y| y[1] <=> x[1]}
1 голос
/ 08 марта 2012

Использование метода сортировки Array #:

ary = [["happy", 1], ["sad", 2], ["mad", 1], ["bad", 3], ["glad", 12]]
ary.sort { |a, b| b[1] <=> a[1] }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...