Как отфильтровать массив dic-filter и добавить в отдельный массив dic - PullRequest
0 голосов
/ 11 июля 2019

У меня есть один массив dic, у меня есть один ключ, называемый «state»: test, «state»: original.У меня может быть несколько объектов.

код:

var StatusData = [[String: Any]]()
var testStatusData = [[String: Any]]()
var originalStatusData = [[String: Any]]()

Мой маленький фрагмент в моем методе:

Где -> document.data() is an [String:Any]

for document in (querySnapshot! as AnyObject).documents {
                    print("\(document.documentID) => \(document.data())")
                    let data  = document.data()
                    self.playersStatusData.append(document.data())
                }
                print(self.playersStatusData)

Теперь мне нужно добавить фильтр для playersStatusData, и в зависимости от состояния - test, original.Мне нужно отделить объект и добавить к соответствующему массиву dic.

, если у меня есть 4 объекта dic в моем playersStatusData.В том случае, если 2 объекта имеют состояние = "тест".Затем этот конкретный объект должен добавить к testStatusData.

то же самое еще 2 объекта, имеющих состояние = "оригинал".Затем этот конкретный объект нужно добавить к originalStatusData.

, который я использовал filter { $0.1 == "orginal" }.Он просто печатает только этот ключ, значения.Но мне нужен полный объект и добавить к ним соответствующие [String: Any]].

Любая помощь по этому вопросу, спасибо.

Обновление:

 [“test”: 1, “id”: 230, “total”: 1, “crunch”: 1, “name”: Cristina Criado, "Bot": <null>, "state": test,]

 [“test”: 3, “id”: 20, “total”: 10, “crunch”: 1, “name”: phasni, "Bot": <null>, "state": original,]

[“test”: 5, “id”: 0, “total”: 00, “crunch”: 1, “name”:picturn, "Bot": <null>, "state": test,]

1 Ответ

0 голосов
/ 11 июля 2019

Вы можете попробовать это

let playersStatusData =  [
    ["test": 1, "id": 230, "total": 1, "crunch": 1, "name": "A", "Bot": "", "state": "test"],
    ["test": 2, "id": 231, "total": 1, "crunch": 1, "name": "B", "Bot": "", "state": "original"],
    ["test": 3, "id": 232, "total": 1, "crunch": 1, "name": "C", "Bot": "", "state": "test"],
    ["test": 4, "id": 233, "total": 1, "crunch": 1, "name": "D", "Bot": "", "state": "original"],
    ["test": 5, "id": 234, "total": 1, "crunch": 1, "name": "E", "Bot": "", "state": "test"],
    ["test": 6, "id": 235, "total": 1, "crunch": 1, "name": "F", "Bot": "", "state": "test"]
]


let dicts = Dictionary(grouping: playersStatusData, by: {$0["state"] as! String})

print(dicts["test"]) // O/P of all state = test in array
print(dicts["original"]) // O/P of all state = original in array

Если возникнет какая-либо проблема, вы можете спросить.

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