私は人を連れて行こうとしているだけでなく、並べ替えるだけでなく、すべての人の前に最初の文字を追加していますこの手紙でアドレス帳のような文字を名前の配列に追加する
[ダニエル]、[マイケル]、[リサ]、[レナ] M "、" Michael "]
私は何か遊び場で働いていますが、私にとっては、人が数千人以上になると、これは地獄のように醜いものになり、パフォーマンスについては考えられません。
//: Playground - noun: a place where people can play
import Cocoa
var previousName: String?
let people = ["Martin", "Michael", "Lisa", "Lena", "Dirk"]
var peopleWithLetters: [String] = []
people.sorted { $0.localizedCaseInsensitiveCompare($1) == ComparisonResult.orderedAscending }.forEach {
if $0.uppercased().characters.first! != previousName?.uppercased().characters.first! {
peopleWithLetters.append("\($0.uppercased().characters.first!)")
}
previousName = $0
peopleWithLetters.append($0)
}
ベストプラクティスを合理化したりフォローしたりするには、どのような考えがあれば幸いです。
"醜い地獄"はSwiftを使った正しいアプローチのようです。 * SCNR * –
アルファベットを追加して並べ替えます。 – Willeke
興味深いアイデア!しかし、名前が付いていない文字を取り除く必要があります。 新しいSwift 4の構文を確認しましたが、 "グループ化"を使って辞書を初期化する新しい方法があります。 – Daniel