Arrays Swift-基于两个数组值比较结果的新数组

Arrays Swift-基于两个数组值比较结果的新数组,arrays,swift,dictionary,Arrays,Swift,Dictionary,我是Swift新手,请给我建议,按id比较这两个数组的最佳做法是什么,如果id匹配,需要使用名称和Int值创建新数组,在这种情况下: idsArr = [ "id12345", "id27891", "id98654"] idsNameIntvalueArr = [["id22913", "Peter Parker", 15], ["id12345", "Donald Duck", 6], ["id98654", "Mickey Mouse", 9], ["id112233", "Lion Ki

我是Swift新手,请给我建议,按id比较这两个数组的最佳做法是什么,如果id匹配,需要使用名称和Int值创建新数组,在这种情况下:

idsArr = [ "id12345", "id27891", "id98654"]
idsNameIntvalueArr = [["id22913", "Peter Parker", 15], ["id12345", "Donald Duck", 6], ["id98654", "Mickey Mouse", 9], ["id112233", "Lion King", 9]]

谢谢。

您可以这样做:

resultArr = [["Donald Duck", 6],["Mickey Mouse", 9]]
首先,需要对数组进行筛选,以仅包括IDSAR中ID存在的成员


然后,过滤完数组后,您需要创建只包含名称和年龄的子数组,这就是map所做的。

FYI-使用数组保存数据集合的设计非常糟糕。您应该声明一个具有id、name和value三个属性的结构。然后使用这些结构的数组。谢谢你的建议!不客气,认真对待@rmaddy的建议很重要,祝你好运。这也是我第一次使用Swift数组。我有两个字符串数组myArray1和myArray2,需要1个myResultArray1,它只保存两个数组myArray1和myArray2中存在的字符串,顺序与myArray1相同,当然要减去两个数组中未包含的缺少的字符串-和2个myResultArray2,它只保存myArray2中可用的字符串,实际上是:myArray2-MyResultary1。您是使用.filter来执行此操作,还是阵列上有其他API来执行我打算执行的操作?
let resultArr = idsNameIntvalueArr.filter({ idsArr.contains($0[0] as! String) }).map({ [$0[1], $0[2]] })