2016-03-23 21 views
0

İç içe geçmiş bir sözlük veri yapısı kullanarak, bir grup NSLayoutConstraint s, [String: [String: NSLayoutConstraint]]'un belirli bir parçasının izini sürdürebilmek için kullanıyorum. Nasıl bir sözlük girdisinin, ör değilanahtar-değer çift, bir [Double] tüm değerlere içine ayıklamakSwift iç içe geçme sözlüklerinde satırlara erişme

var myNestedDictionary = [String: [Int: Double]]() 
myNestedDictionary["squares"] = [1: 1.0, 2: 4.0, 3: 9.0, 4: 16.0] 
myNestedDictionary["cubes"] = [1: 1.0, 2: 8.0, 3: 27.0, 4: 64.0] 
myNestedDictionary["factorials"] = [1: 1.0, 2: 2.0, 3: 6.0, 4: 24.0] 

: Ama durum için, en aşağıdaki basit örneği ele alalım myNestedDictionary["cubes"]'dan nasıl [1.0, 8.0, 27.0, 64.0] alabilirim?

cevap

1

basit yolu sadece bir diziye sözlüğü eşlemek olacaktır: sözlükleri sırasız olduğu, bu durum mutlaka tuşları ima emriyle yapışmayacak

let values = myNestedDictionary["cubes"]?.map({$0.1}) 

. Artan sıralamayı korumak istiyorsanız, önce anahtarları sıralayabilir ve ardından eşleştirilen anahtarları şu şekilde kullanabilirsiniz:

let values = myNestedDictionary["cubes"]?.keys.sort().flatMap {myNestedDictionary["cubes"]![$0]!} 
İlgili konular