首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NSRange按长度和位置对数组进行排序

使用NSRange按长度和位置对数组进行排序
EN

Stack Overflow用户
提问于 2016-05-20 18:08:09
回答 1查看 196关注 0票数 1

我正试图根据长度和位置对NSRanges阵列进行排序:

代码语言:javascript
复制
var allranges = [NSRange?]()
allranges.append(NSRange(location: 3, length: 5))
allranges.append(NSRange(location: 9, length: 2))
allranges.append(NSRange(location: 9, length: 1))
allranges.append(NSRange(location: 24, length: 5))
allranges.append(NSRange(location: 16, length: 9))
allranges.append(NSRange(location: 11, length: 6))

allranges.sortInPlace{ $0!.location < $1!.location && $0!.length < $1!.length}
print(allranges)

这就是我所印的:

任择(3,5),可选(9,2),可选(9,1),可选(24,5),可选(11,6),可选(16,9)

但我想这样做:

任择(3,5),可选(9,1),可选(9,2),可选(24,5),可选(11,6),可选(16,9)

请帮帮忙!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-20 18:17:13

您可能希望按location进行排序,如果location相同,则按length排序,例如:

代码语言:javascript
复制
var allranges = [NSRange]()
allranges.append(NSRange(location: 3, length: 5))
allranges.append(NSRange(location: 9, length: 2))
allranges.append(NSRange(location: 9, length: 1))
allranges.append(NSRange(location: 24, length: 5))
allranges.append(NSRange(location: 16, length: 9))
allranges.append(NSRange(location: 11, length: 6))

allranges.sortInPlace { $0.location == $1.location ? $0.length < $1.length : $0.location < $1.location }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37353203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档