我有[Int:[String:String]]
类型的词典
例子:
[1546696330:[“符号”:“ETH”,“金额”:“1.0”]、1546531017:[“符号”:“ETH”,“金额”:“1.0”]、1546531031:[“符号”:“XRP”,“金额”:“200.0”]]
如您所见,我有两个重复的字典,键symbol
的值是ETH
。我需要的代码,将删除所有值,并留下最小(Int)值。
预期结果:
[1546531017:[“符号”:“ETH”,“金额”:“1.0”],[1546531031:[“符号”:“XRP”,“金额”:“200.0”]]
其中1546531017 < 1546696330
最佳答案
这将删除具有较大int值的重复项
let dict:[Int:[String:String]] = [ 1546531017: ["symbol": "ETH", "amount": "1.0"], 1546531031: ["symbol": "XRP", "amount": "200.0"],1546696330: ["symbol": "ETH", "amount": "1.0"]]
var dict2:[Int:[String:String]] = [:]
dict.forEach({ (key, value) in
if let item = dict2.first(where: {value["symbol"] == $1["symbol"]}) {
if (key < item.key) {
dict2[item.key] = nil
dict2[key] = value
}
} else {
dict2[key] = value
}
})
关于swift - 删除字典中的重复项,仅保留最小值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54135010/