2017-08-19 39 views
0

我不確定這是否可能,但讓我們說我們有一個字符串數組,並需要匹配它們與相應的圖像數組。像:有沒有辦法將一個字符串數組映射到一個圖像數組?

["Patriots", "Broncos", "Cowboys"] = [pat.png, bronc.png, cow.png] 

我已經試過與地圖功能,但它似乎並沒有工作:

let footballArray = ["Patriots", "Broncos", "Cowboys"].map({return [pat.png, bronc.png, cow.png] }) 

解決這個問題的任何幫助表示讚賞!

+2

爲什麼不使用字典? – Larme

+0

我不完全確定如何設置這樣的信息 – SwiftyJD

+0

https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/CollectionTypes.html – luk2302

回答

1

您可以從這兩個序列創建這樣的字典。

let a = ["Patriots", "Broncos", "Cowboys"] 
let b = ["pat.png", "bronc.png", "cow.png"] 

var footballDict: [String : String] = [:] 

zip(a, b).forEach { footballDict[$0] = $1 } 
0

您可以嘗試 let footballArray = [String : String] = ["Patriots" : "pat.png", "Broncos" : "bronc.png", "Cowboys" : "cow.png"]

,圖,here

0

這是如何使用.map

let footballArray = ["Patriots", "Broncos", "Cowboys"].map({ (value: String) -> String in 
     return value + ".png" 
0

擴展程序添加到您的字符串。如果你在談論如何將兩個結合數組合成一個,可以使用zip

struct Team { 
    let teamName: String 
    let imageName: String 
} 

let teamNames = ["Patriots", "Broncos", "Cowboys"] 
let imageNames = ["pat.png", "bronc.png", "cow.png"] 

let teams = zip(teamNames, imageNames).map { (teamName, imageName) in 
    Team(teamName: teamName, imageName: imageName) 
} 

這產生一個Team對象數組,使用這兩個數組中的元素構建。

相關問題