如何在红宝石中对2维数组进行排序

use*_*206 0 ruby arrays sorting ruby-on-rails

我知道这可能会回答一百万次,但我无法找到我想做的事情.

我有一个数组如下:

tag_array = [[tag1, tag_count1], [tag1, tag_count2], [tag3, tag_count3], [tag4, tag_count4]]
Run Code Online (Sandbox Code Playgroud)

我想根据tag1,tag2,tag3按字母顺序排序...

我尝试过以下方法:

tag_array.sort {|a,b| a[0] <=> b[0]}
Run Code Online (Sandbox Code Playgroud)

但没有运气!

我错过了什么吗?

谢谢!

PS:tag1,tag2,tag3 ...是字符串.

Ale*_*kin 5

Enumerable#sort_by 来救援:

tag_array.sort_by { |el| el.first }
Run Code Online (Sandbox Code Playgroud)

上面的内容可能用简短的符号表示(@ justin-licata的积分):

tag_array.sort_by &:first
Run Code Online (Sandbox Code Playgroud)

sort_by事实证明,BTW 效率更高sort.