Как объединить два массива в Swift

avatar
Bhavani chada
8 апреля 2018 в 10:10
3703
3
3

У меня есть два массива.

let A = ["91","91","49"]
let B = ["9989898909","9089890890","9098979896"]

Мне нужно объединить эти массивы и показать их в раскрывающемся списке как

["91 9989898909","91 9089890890","49 9098979896"]

Как я могу получить этот результат, используя swift?

Источник
Kazi Abdullah Al Mamun
8 апреля 2018 в 10:15
0

Подтверждено ли, что размер обоих массивов (A и B) одинаков.

Bhavani chada
8 апреля 2018 в 10:18
0

Да, оба размера одинаковы

Gereon
8 апреля 2018 в 10:19
0

Уверен, что третий элемент c начинается с «91»? Если так, то это не совсем слияние...

Martin Muldoon
8 апреля 2018 в 10:25
4

Почему третья строка в массиве не начинается с 49?

Ответы (3)

avatar
Gereon
8 апреля 2018 в 10:16
14

Заархивируйте массивы и объедините результаты:

let A=["91","91","49"]
let B=["9989898909","9089890890","9098979896"]
let zipped = zip(A, B)
let result = zipped.map { $0.0 + " " + $0.1 }
sketchyTech
8 апреля 2018 в 10:37
2

Работа с параллельными массивами быстро становится запутанной, zip — лучший способ справиться с ними. Это лучший ответ.

Bhavani chada
21 апреля 2018 в 08:37
0

Могу ли я сделать это с тремя массивами

Gereon
21 апреля 2018 в 08:41
0

Конечно, просто вложите вызовы zip: zip(A, zip(B,C))

avatar
ielyamani
8 апреля 2018 в 10:35
1
let A = ["91","91","49", "5"]
let B = ["9989898909","9089890890","9098979896"]

Используйте zip() для объединения значений из обоих массивов A и B. Если A и B имеют разное количество элементов, объединение все равно будет работать. затем map кортежи из заархивированного массива результатов до тех элементов с пробелом между ними

let C : [String] = zip(A,B).map {$0 + " " + $1}
avatar
Aryan
8 апреля 2018 в 10:18
2

вот фрагмент в Swift:

let a = ["90", "91", "92"]
let b = ["80012", "82379", "123712"]

let result: [String] = a.enumerated().map { (index, element) in
    return index < b.count ? element + " " + b[index] : element
}
Ahmad F
8 апреля 2018 в 12:14
0

Обратите внимание, что если a.count больше, чем b.count, вы получите: «Неустранимая ошибка: индекс вне диапазона».