如何解决按两个字段排序,第二个字段为反向字母一线
我想对一个集合进行排序,例如:
var outputUrl: URL! //video goes here after recording
var videoArray = [URL]()
//after recording,videoArray.append(outputUrl)
func splice() {
// I need help with this part;
//splice each entry in videoArray
}
var splicedVideo: URL! //<-- I need to save the composition to this URL
首先根据每个元素的大小,然后按倒的顺序将每个元素中的第一个元素按字母顺序排列,这样结果将是
[['hello','world','my'],['name','is','foo'],['bar']]
我尝试过
[['bar'],['hello','my']]
,但'-'在这里无效。有什么想法吗?
解决方法
sql_caller
请参见Enumerable#sort_by和Array#<=>(特别是第三段),后者是arr = [['hello','world','my'],['name','is','foo'],['bar']]
arr.sort_by { |a| [a.size,a.first.reverse] }
#=> [["bar"],["name","is","foo"],["hello","world","my"]]
用于排序两个元素的数组的方法。
我通过意识到具有多个字段的sort_by
的工作方式是:“首先按第一个数组项排序,然后如果有平局,则按第二个排序,依此类推”。所以我改成sort
并以降序字母顺序处理领带:
groups.sort do |group_a,group_b|
result = group_a.length <=> group_b.length
result.zero? ? group_b.first <=> group_a.first : result
end.last
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。