Расширение словаря ключа: строковое значение: массив в быстром - PullRequest
0 голосов
/ 20 ноября 2018

Как я могу расширить словарь Swift типа [String:[Double]]?

Какой протокол / Class_Type должен соответствовать значению при расширении словаря?

[PS: в этомРасширение Я хочу вернуть все ключи, чьи массивы значений содержат определенный элемент (Double), который отправляется функции.]

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

Словари имеют два общих элемента Key и Value, которые необходимо ограничивать при создании расширения.

Вы можете сделать это следующим образом:

public extension Dictionary where Key == String, Value == [Double] { }
0 голосов
/ 20 ноября 2018

Вы можете использовать фильтр, чтобы сделать это, как показано ниже:

let dictData = ["a":[1.0,2.0,3.0],
                "b":[1.0,112.0,3.0],
                "c":[7.0,12.0,3.0]]

let filterData = dictData.filter({$0.value.contains(1)})
print(filterData.keys) //output: ["a", "b"]

Вы можете использовать этот массив следующим образом:

 for keys in filterData.keys.makeIterator() {
      print(keys)
 }

Или вы можете получить прямой доступ следующим образом:

filterData.keys.first
...