假设我有一个值数组(按字母顺序排列),例如[A,B,D,G,H,M,Z]代表用户的姓氏.我正在寻找创建一个表索引,那么将这样的数组(任意数量的用姓氏以字母表中的所有字母开头的用户)分成数组的最佳方法是什么,如[A] [B,B] [D] [G,G] [H] [M,M] [Z]这似乎是为具有多个部分的表创建值的最佳方式,其中用户以姓氏分隔.谢谢你的帮助!
解决方法
您可以使用name.characters.first获取名称的初始值,并通过比较它们来构建数组数组:
let names = ["Aaron","Alice","Bob","Charlie","Chelsea","David"] var result: [[String]] = [] var prevInitial: Character? = nil for name in names { let initial = name.characters.first if initial != prevInitial { // We're starting a new letter result.append([]) prevInitial = initial } result[result.endindex - 1].append(name) } print(result) // [["Aaron","Alice"],["Bob"],["Charlie","Chelsea"],["David"]]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。