[英]How do I sort an array of dictionary according to an array contents in Swift
[英]How can I sort an array into a dictionary?
假設我有一個包含多個國家名稱的數組,例如“澳大利亞,丹麥,英國,奧地利,澳大利亞,丹麥”,其中一些國家名稱出現了兩次。
如何將它們分類以根據國家/地區名稱形成字典。 因此,它們的鍵將是國家名稱,而元素將是國家。
如果我在數組中有兩個相同的國家,則關鍵將是該國家,要素將是這兩個國家。
我需要它,以便如果添加另一個國家/地區,它將為該國家/地區創建密鑰,而無需事先指定密鑰。
每個國家/地區都必須位於其國家/地區的鍵之下,而不取決於陣列中該國家/地區的出現情況。
我想我已經為它制定了一個基本算法,但是我似乎無法將其付諸實踐。
該算法正確還是至少朝正確方向邁出了一步?
謝謝您的幫助。
編輯:我們有一個包含國家名稱“澳大利亞,丹麥,英國,奧地利,澳大利亞,丹麥”的數組
我需要將其組織成一個基於國家/地區的字典,因為數組中有兩個國家/地區丹麥,所以我需要對其進行排序,如下所示:
Denmark: "Denmark", "Denmark"
關鍵是國家名稱,元素是字符串。
英國僅出現一次,因此字典的一部分將如下所示:
United Kingdom: "United Kingdom"
我希望我有更多的道理。
不知道這是否是您的意思。 不太清楚。
var dict = [String: [String]]()
let countries = ["Holland", "England", "France", "Belgium", "England"]
for country in countries {
dict[country] = (dict[country] ?? []) + [country]
}
for (key, value) in dict {
println("KEY: \(key) & VALUE: \(value)")
}
輸出:
KEY: England & VALUE: [England, England]
KEY: Belgium & VALUE: [Belgium]
KEY: Holland & VALUE: [Holland]
KEY: France & VALUE: [France]
編輯:
根據Martin R在他的評論中的鏈接進行了簡化。
最簡單的方法是僅遍歷數組並檢查鍵是否存在於字典中。 使字典的每個值成為NSMutableArray。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.