如何在字典中对KeyValue进行排序并返回一个字符串

时间:2017-08-30 07:16:43

标签: swift3

说,我有以下网址。

我将keyValues存储在字典中

if(isPass == false){
    document.getElementById("error_msg_smry").style.display = 'block';
    window.scrollTo(0,0);
}

问题:如何对其进行排序并从KeyValues输出字符串

let strURL = "https://www.x.com/?d=1&a=2&b=3&c=4&nbr=1234567890"
let items = URLComponents(string:strURL)?.queryItems
var KeyValues:[String:String] = [:]

items?forEach {
    item in KeyValues[item.name] = item.value
}

由于

1 个答案:

答案 0 :(得分:0)

我就这样做了:

let sorted = KeyValues.map { $0 }.sorted { $0.key < $1.key }
let result = sorted.dropFirst().reduce("\(sorted.first!.key)=\(sorted.first!.value)") { (result, kvp) -> String in
    result + "&\(kvp.key)=\(kvp.value)"
}

我们首先将字典转换为[(String, String)],然后根据密钥对其进行排序。

然后,我们reduce排序的数组将键和值连接在一起。