Как получить значение для «ключей в массиве» в словаре в swift4 - PullRequest
0 голосов
/ 04 октября 2018

Я сделал словарь.

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

, и у меня есть массив, который содержит те же ключи 'fruits'

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

, и я хочу получить массив 'fruits'проверять значения словаря «фрукты» один за другим, используя элементы в массиве «fruitsKey».

Этот массив будет выглядеть как

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

Как получить значение для ключей в массиве'в словаре?

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Чтобы получить массив соответствующих значений для массива ключевых значений, используйте 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 пропустит его.
0 голосов
/ 04 октября 2018

В этом сценарии, если вы просто хотите получить все значения плодов, вам не нужно искать, перебирая fruitsKeys.Просто выполните итерацию всех значений следующим образом:

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

Если вам нужно извлечь значения на основе доступных ключей в fruitsKeys, итерация может быть такой:

for fruit in fruits {
    if fruitsKeys.contains(fruit.key) {
        fruitsValue.append(fruit.value)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...