Есть ли способ, которым я могу превратить словарь KVP в строку? - PullRequest
0 голосов
/ 07 мая 2018

Я пытаюсь превратить мою переменную [String:Bool], которую я извлек из FireStore, в строку.

Пример:

var action = ["Nourishing":true, "Radiance":true]

до:

"Питательный, сияющий"

Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Также есть более сложное решение с использованием Reduce

.
 let action = ["Nourishing":true, "Radiance":true] 

     let  data =   action.reduce("") { (result, dic) -> String in
            return result.count == 0  ? (result + "\(dic.key)") :  (result + ",\(dic.key)")
      }
     print(data)
0 голосов
/ 07 мая 2018

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

var action = ["Nourishing":true, "Radiance":true, "Whatever":false]
let keysAll = action.keys.joined(separator: ", ")
print(keysAll)

Результат:

Питательный, Сияющий, Что угодно

Если вам нужны только определенные ключи, вам сначала нужно отфильтровать ключ / значения по мере необходимости. Например, если вам нужны только ключи со значением true, вы можете сделать:

var action = ["Nourishing":true, "Radiance":true, "Whatever":false]
let keysTrue = action.filter { $0.value }.keys.joined(separator: ", ")
print(keysTrue)

Результат:

Питательный, сияющий

Или вы можете сделать:

var action = ["Nourishing":true, "Radiance":true, "Whatever":false]
let keysTrue = action.flatMap { $0.value ? $0.key : nil }.joined(separator: ", ")
print(keysTrue)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...