Фильтрация массива на основе другого строкового элемента массива - PullRequest
0 голосов
/ 28 мая 2020

Я знаю, что мой вопрос очень простой, и мне очень жаль, что я его задаю

У меня есть два массива для стран, и в каждом из двух массивов есть два объекта

array1[0].name = "US"

arrary1[0].code = "1"

В этом массиве , все страны - это списки

, но в другом массиве у меня есть несколько стран.

 array2[0].countryName = "US"

 arrary2[0].countryCode = "1"

Я хочу отфильтровать первый массив, который показывает только страну, которая находится во втором массиве

 let counrtyInfos = array1.filter{ $0.name == array2.first?.countryName}

В этом коде используется только первое значение индекса, я не знаю, как применить этот фильтр ко всему второму массиву. Спасибо за помощь

1 Ответ

0 голосов
/ 28 мая 2020

Попробуйте этот код:

let array2Names = array2.compactMap({ $0.name })
let counrtyInfos = array1.filter({ array2Names.contains($0.name) })!
...