我有[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/

10-12 00:44