我有一个这样的数组:
array = ["git-hw-abcd", "svn-hw", "svn-hw-design","git-hw"]
如果我做array.sort,我基本上会得到像这样的升序
["git-hw", "git-hw-abcd", "svn-hw", "svn-hw-design"]
希望按值"svn-hw"
和"git-hw"
对数组进行排序,以显示为数组的第一个和第二个元素,以便我得到:
[“svn-hw”,“git-hw”,...然后剩下的值]
任何帮助都将不胜感激。
答案 0 :(得分:2)
试试这个
* sorting on length(as sort criteria is not specified)
["git-hw-abcd", "svn-hw", "svn-hw-design","git-hw"].sort{|a,b| a.length <=> b.length}
返回
["git-hw", "svn-hw", "git-hw-abcd", "svn-hw-design"]
答案 1 :(得分:2)
array.sort{|a,b| a.split("-h")[1]<=>b.split("-h")[1]}
这就是你想要的
@Hivltg
使用以下方法尝试长度顺序:array= [ "svn-hw", "git-hw-abcd","git-hw", "svn-hw-design", "git-hw-bassics"]
你会发现问题。
答案 2 :(得分:1)
不完全确定您的订购方式,但这是使用块进行排序的示例
array.sort{|a,b| a[4..-1] <=> b[4..-1]}