如何返回Array<Array<String>>的后代的相同元素?

问题描述 投票:0回答:1

我有一个字符串数组的数组,我需要返回后代的相同元素。

let arrayArrayStrings: [[String]] = [
["a", "b", "e"],
["a", "c", "e"],
["a", "d", "e"]
]

我希望它返回

["a", "e"]
。当我尝试这样做的时候,我的大脑已经崩溃了。我怎样才能有效地做到这一点?

arrays swift multidimensional-array
1个回答
0
投票

Set
有强大的方法来确定两个集合的关系,因此一个可能的解决方案是将内部数组映射到
Set
并调用
intersection

let arrayArrayStrings: [[String]] = [
["a", "b", "e"],
["a", "c", "e"],
["a", "d", "e"]]

let arraySetStrings = arrayArrayStrings.map(Set.init)
var commonElements = arraySetStrings[0]
for i in 1..<arraySetStrings.count {
    commonElements = commonElements.intersection(arraySetStrings[i])
}
print(commonElements.sorted())
© www.soinside.com 2019 - 2024. All rights reserved.