Swift имеет очень хороший способ переплетения массивов с помощью функции zip
:
let firstNames = ["James", "Andrew", "Sean"]
let lastNames = ["Smith", "Docherty", "Anderson"]
let randomIndex = Int(arc4random_uniform(UInt32(firstNames.count)))
let randomName = Array(zip(firstNames, lastNames))[randomIndex]
print("\(randomName.0) \(randomName.1)")
zip(_:_:)
принимает две коллекции (т.е. массивы) и возвращает последовательность пар кортежей, где элементыкаждая пара является соответствующими элементами обеих коллекций.Инициализатор Array
преобразует результат в массив кортежей.
Это решение всегда соответствует имени и фамилии, т. Е. Вы получаете Джеймса Смита, Эндрю Доэрти или Шона Андерсона.Если это не то, что вам нужно, вам понадобятся два случайных индекса, а не функция zip
, как предложено в других ответах.