Я создал эти два объекта:
struct Person {
let name: String
let genderId: Int
}
struct Gender {
let id: Int
let sex: String
}
и создал эти массивы:
let persons = [
Person(name: "Steve", genderId: 1),
Person(name: "Kate", genderId: 2),
Person(name: "Mark", genderId: 1),
Person(name: "Pam", genderId: 2)
]
let genders = [
Gender(id: 1, sex: "girl"),
Gender(id: 2, sex: "boy"),
]
Какой должен быть наиболее эффективный алгоритм, использующий нотацию большого О для создания массив объектов, основанный на этом новом объекте:
struct PersonWithGenderString {
let name: String
let genderString: String
}
Я уже написал этот метод, используя два цикла forEach, но я ищу способ, который выполняет итерацию как можно меньше времени:
persons.forEach { (person) in
genders.forEach { (gender) in
if person.genderId == gender.id {
let personWithGenderString = PersonWithGenderString(name: person.name, genderString: gender.sex)
print(personWithGenderString)
}
}
}