如果我有以下数组,我想通过将 mysteryDoors 数组映射为字典的键来创建一个包含门奖的字符串数组,并将相应的值放入一个新数组中。
因此我会得到一个 ["Gift Card", "Car", "Vacation"] 的字符串数组,我该怎么做?
let mysteryDoors = [3,1,2]
let doorPrizes = [
1:"Car", 2: "Vacation", 3: "Gift card"]
最佳答案
可以通过map()
将每个数组元素对应到值中
词典。如果保证所有数组元素都是
作为字典中的键出现,那么你可以这样做:
let mysteryDoors = [3, 1, 2]
let doorPrizes = [ 1:"Car", 2: "Vacation", 3: "Gift card"]
let prizes = mysteryDoors.map { doorPrizes[$0]! }
print(prizes) // ["Gift card", "Car", "Vacation"]
如果键不存在,要避免运行时崩溃,请使用
let prizes = mysteryDoors.flatMap { doorPrizes[$0] }
忽略未知键,或者
let prizes = mysteryDoors.map { doorPrizes[$0] ?? "" }
将未知键映射到默认字符串。
关于arrays - 如何将整数数组映射为字典值的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46439509/