Создать массив словарей из двух массивов в Swift - PullRequest
4 голосов
/ 12 июня 2019

У меня есть два словаря:

name = ["A","B","C","D","E"]
number = ["1","2","3","4","5"]

Как я могу произвести следующее, используя встроенные функции?

[
    {name : "A", number: "1"},
    {name : "B", number: "2"},
    {name : "C", number: "3"},
    {name : "D", number: "4"},
    {name : "E", number: "5"}
]

1 Ответ

3 голосов
/ 12 июня 2019

Желаемый результат, который вы показали, - это не один словарь, а массив словарей, т.е. [[String: String]].

Вы можете преобразовать два массива следующим образом:

name = ["A","B","C","D","E"]
number = ["1","2","3","4","5"]

let result = zip(name, number).map { ["name": $0, "number": $1] }

Тем не менее, я бы предложил вам создать структуру / класс для хранения этих пар имя / номер, а не использовать массив словарей:

struct Foo { // give this an appropriate name!
    let name: string
    let number: String
}

let result = zip(name, number).map { Foo(name: $0, number; $1) }
...