Как получить список ключей на основе условия по значению из массива структуры в Swift? - PullRequest
0 голосов
/ 04 мая 2020

Как получить массив, содержащий имена сотрудников, для которых в следующем коде верно значение true? Я ищу простое однострочное решение с использованием карты или фильтра.

struct Employee {
    var name: String?
    var present: Bool?
}

var employeeList = [Employee]()

employeeList.append(Employee(name: "A", present:true))
employeeList.append(Employee(name: "B", present:false))
employeeList.append(Employee(name: "C", present:false))
employeeList.append(Employee(name: "D", present:true))

// Get the list of employees who have present == true
// Should return ["A", "D"]

1 Ответ

3 голосов
/ 04 мая 2020

Попробуйте

let res = employeeList.compactMap { $0.present ? $0.name : nil } 

Удалите ? для struct свойств, если вы всегда указываете значение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...