Разделите данные массива на два массива - PullRequest
0 голосов
/ 15 февраля 2020

Я получаю серию данных от json, как это

   [
  {
   "name": "david",
    "gender": "Male"
  },
  {
    "name": "Sara",
    "gender": "Female"
  },
  {
    "name": "Philipp",
    "gender": "Male"
  },
  {
    "name": "Marry",
    "gender": "Female"
  }
]

Я получаю эти данные и сохраняю их в один массив

Позволяет называть это names

Теперь я хочу создать два других массива

femaleNames

maleNames

И я хочу сохранить все женские имена в femaleNames и все мужские имена в maleNames на основе типа пола данные. Я не знаю, как я могу реализовать это условие в Swift 5. Не могли бы вы помочь мне? Спасибо

Ответы [ 2 ]

1 голос
/ 15 февраля 2020

Предполагая, что у вас есть структурная модель для ваших данных по следующим линиям:

enum Gender: Decodable, String {
    case female = "Female"
    case male = "Male"
}

struct NameEntry: Decodable {
    let name: String
    let gender: Gender
}

и дана группа имен в

var names: [NameEntry]

, вы можете легко фильтровать, используя

let femaleNames = names.filter { $0.gender == .female }
let maleNames = names.filter { $0.gender == .male }
1 голос
/ 15 февраля 2020

Вы можете использовать фильтр по массиву;


struct YourStruct: Decodable {
    let name: String
    let gender: String
}

let femaleNames = names.filter( { $0.gender == "Female"})
let maleNames = names.filter( { $0.gender == "Male"})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...