ios 如何根据另一个数组对字典进行排序

46scxncf  于 2023-04-22  发布在  iOS
关注(0)|答案(1)|浏览(111)

我有一个这样的数组:

var orderToFollow:[String] = ["fromAccount", "toAccount", "amount", "benName"]

还有一本这样的字典:

var randomOrderDic = [
      "benName": "abc", 
      "amount": 15.0, 
      "toAccount": "123456", 
      "fromAccount": "789530"
     ]

如何将randomOrderDic排序为:

[
  "fromAccount": "789530", 
  "toAccount": "123456", 
  "amount": 15.0, 
  "benName": "abc"
]

我是新的编码,所以我不知道如何解决这个问题。任何帮助是非常感谢

jgwigjjp

jgwigjjp1#

字典的设计是无序的。如果你想按一定的顺序检索值,你可以按你想要的顺序遍历一个键数组并检索每个值。

for key in orderToFollow
{
    if let value = randomOrderDic[key]
    {
        // Do something with the value here
    }
}

当然,这不会得到任何未出现在orderToFollow中的键。

let unorderedKeys = randomOrderDic.keys.filter { !orderToFollw.contains($0) }

Apple的Swift collections package确实提供了OrderedDictionary类型,但最好还是习惯字典键是无序的,因为没有什么用例需要排序。

相关问题