所以,我有两个有序集合,事物的结构方式是一个有序集合基本上有一个字典列表,另一个有序集合有与字典中某个值相对应的字符串。让我用一个例子来说明:
OrderedSetA = [["key1": "test", "key2": "A"], ["key1": "test2", "key2": "B"], ["key1": "test3", "key2":"C"], ["key1": "test4", "key2": "E"]]
OrderedSetB = ["B","G","H", "A", "E", "D", "C", "F", "J", "K"]
所以,现在我基本上想根据为与 OrderedSet B 中对应的字符串指定的顺序重新排列 OrderedSetA 中的元素,key2
同时忽略 B 中不在 A 中的任何值。例如,在这种情况下,我d 正在寻找的东西是这样的:
OrderedSetC = [["key1": "test2", "key2": "B"], ["key1": "test1", "key2": "A"], ["key1": "test4", "key2":"E"], ["key1": "test3", "key2": "C"]]
这是我到目前为止所尝试的:
let orderedSetC = orderedSetA.filter {OrderedSetB.contains(($0 as AnyObject).key2)}
这里发生的事情是它只返回相同的东西,我想我是根据 OrderedSetB 过滤的,它不在 OrderedSetA 中,但是没有排序/重新排序发生。
基于 Swift 5 的最合适和最有效的处理方式是什么?
谢谢!