swift4如何在字典中获取'数组中的键'的值

时间:2018-10-04 02:45:42

标签: swift dictionary key

我做了字典。

let fruits = ["aa":"apple", "bb":"banana", "gg":"grapes" ]

我有一个数组,其中包含相同的'fruits'键

let fruitsKeys = ["aa", "bb", "gg"]

我想通过使用数组'fruitsKey'中的元素逐一检查字典'fruits'来获取'fruits'值数组。

该数组看起来像

fruitsValue = ["apple", "banana", "grapes"]

如何获取字典中“数组中的键”的值?

2 个答案:

答案 0 :(得分:2)

要获取键值数组的对应值数组,请使用compactMap创建数组:

let fruits = ["aa":"apple", "bb":"banana", "gg":"grapes" ]

let fruitsKeys = ["aa", "bb", "gg"]

let fruitsValue = fruitsKeys.compactMap { fruits[$0] }

print(fruitsValue)
["apple", "banana", "grapes"]

注释:

  1. 相应的值将与原始数组中的键的顺序相同。
  2. 如果键实际上没有值,这将安全地跳过该键,因为查找将返回nil,而compactMap会将其忽略。

答案 1 :(得分:0)

在这种情况下,如果只需要所有水果值,则不需要通过遍历fruitsKeys进行搜索。只需像这样遍历所有值即可:

for fruit in fruits {
    fruitsValue.append(fruit.value)
}

如果您需要基于fruitsKeys中的可用键来获取值,则迭代可能是这样的:

for fruit in fruits {
    if fruitsKeys.contains(fruit.key) {
        fruitsValue.append(fruit.value)
    }
}