通过数组Swift中的字母生成排序字典

Mah*_*aha 0 arrays xcode dictionary ios swift

我有一个部门名称数组

var departments: Array<String>!
Run Code Online (Sandbox Code Playgroud)

我想在字典中按字母顺序对这个数组进行排序,例如字典应该是这样的

var MyDictionary = ["A": ["Affenpoo", "Affenpug", "Affenshire", "Affenwich", "Afghan Collie", "Afghan Hound"], "B": ["Bagle Hound", "Boxer"],
    "C": ["Cagle Cound", "Coxer"]]
Run Code Online (Sandbox Code Playgroud)

departments数组不是静态的

我怎么能在swift中生成这个字典?

非常感谢

Pau*_*w11 5

我的方法是迭代数组并获取每个条目的第一个字母.从字典中检索该字母的数组.如果是nil则创建一个新数组.将单词添加到您检索的数组中,然后将该数组存储在字典中.

let departments = ["Affenpoo", "Affenpug", "Affenshire", "Affenwich", "Afghan Collie","Cagle Cound", "Coxer"]
var outputDict=[String:[String]]()

for word in departments {
    let initialLetter=word.substringToIndex(word.startIndex.advancedBy(1)).uppercaseString
    var letterArray=outputDict[initialLetter] ?? [String]()
    letterArray.append(word)
    outputDict[initialLetter]=letterArray
}

print(outputDict)
Run Code Online (Sandbox Code Playgroud)

["C":["Cagle Cound","Coxer"],"A":["Affenpoo","Affenpug","Affenshire","Affenwich","Afghan Collie"]]