2016-11-17 3 views
4

Ich versuche, ein Wörterbuch zu einem flacheren Array seiner Werte zuzuordnen. Drehen Sie dieses Objekt in [Object]Swift Flat Map Dictionary Datenstruktur

var objectsDic: [Int : [[Object]]] 

ich endlich einen Weg gefunden, die

objectsDic.map { $0.value }.flatMap { $0 }.flatMap { $0 } 

Gibt es einen besseren Weg, diese Anrufe ohne die Verwendung von zwei separaten flachen Karte zu tun funktioniert? Vielen Dank!

+3

Alternative: 'Array (. ObjectsDic.values.joined() verbunden())' –

+2

Nun, Sie kann die erste 'map' in eine' flatMap' verwandeln und den letzten Aufruf herausnehmen ... aber das sind immer noch zwei 'flatMap' Aufrufe. – Hamish

+0

@MartinR yeah 'joined()' ist ein bisschen schöner als 'flatMap {$ 0}' – Alex

Antwort

1

Ein Hybrid aus einige der Vorschläge in den Kommentaren, und ich glaube, die prägnanteste Notation:

objectsDict.flatMap{$0.value.joined()} 
Verwandte Themen