arrays - 如何将整数数组映射为字典值的键

标签 arrays swift dictionary

如果我有以下数组,我想通过将 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/

相关文章:

swift - Store Swift v3 中产品的延迟加载

ios - Swift - CollectionViewCell 边框错误或不完整

Python 以字典值的形式访问对象的属性

javascript - 如何将对象数组合并到一个对象中,包括内部对象 - JavaScript?

c - 为什么 int 指针的大小与 int 数组的大小不同?

java - 如何在一个for循环中计算具有多个数组的数组内的值的数量?

java - 我可以合并两个数组并且仍然知道每个元素的来源吗?

swift - SceneKit/SpriteKit 中的控件?

C# 列表作为字典键

java - 一个方法如何可以有不同数量的参数?