В Swift я пытаюсь сгладить массив словарей в один словарь то есть
let arrayOfDictionaries = [["key1": "value1"], ["key2": "value2"], ["key3": "value3", "key4": "value4"]]
//the end result will be:
flattenedArray = ["key1": "value1", "key2": "value2", "key3": "value3", "key4": "value4"]
Я попытался использовать flatmap, но тип возвращаемого результата [(String, AnyObject)]
, а не [String, Object]
, т.е.
let flattenedArray = arrayOfDictionaries.flatMap { $0 }
// type is [(String, AnyObject)]
У меня есть 2 вопроса:
-
Почему возвращается тип [(String, AnyObject)]? И что означают скобки?
-
Как достичь желаемого результата?
Изменить: я предпочел бы использовать функциональный подход с Swift map/flatmap/reduce и т.д. вместо for-loop