Как сложить определенное значение в типе словаря - PullRequest
0 голосов
/ 17 декабря 2018

Я создаю функцию отзывов.Я хочу отображать звезды обзора.В настоящее время у меня есть следующие данные в документации Firestore

[
 DADA.Review(
        uid: Optional("RAMIqHAVeoU4TKkm3FDw7XUwgym2"), 
        reviewer: Optional("o93WI2UySobPj3fdtMOQvZ4cBng1"), 
        rate: Optional(4), 
        description: Optional("I\'m so happy")
        ), 
 DADA.Review(
        uid: Optional("RAMIqHAVeoU4TKkm3FDw7XUwgym2"), 
        reviewer: Optional("o93WI2UySobPj3fdtMOQvZ4cBng1"), 
        rate: Optional(3), 
        description: Optional("Great")
        ),
 DADA.Review(
        uid: Optional("RAMIqHAVeoU4TKkm3FDw7XUwgym2"),
        reviewer: Optional("o93WI2UySobPj3fdtMOQvZ4cBng1"), 
        rate: Optional(3), 
        description: Optional("NIce seller")), 
 DADA.Review(
        uid: Optional("RAMIqHAVeoU4TKkm3FDw7XUwgym2"), 
        reviewer: Optional("o93WI2UySobPj3fdtMOQvZ4cBng1"),
         rate: Optional(1), description: Optional("Greate seller")
        )
 ]

Затем мы добавили эти данные в массив reviews, используя запросы.

func fetchReview(){
    let userRef = Firestore.firestore().collection("reviews").whereField("uid", isEqualTo: uid!)

    userRef.getDocuments() {(querySnapshot, err) in
        if let err = err {
            print("Error getting documents: \(err)")
        }else {
            for document in querySnapshot!.documents {
                let data = document.data()
                let uid = data["uid"] as? String ?? ""
                let reviewer = data["reviewer"] as? String ?? ""
                let rate = data["rate"] as? Int ?? 0
                let description = data["description"] as? String ?? ""
                let newReviews = Review(uid: uid, reviewer: reviewer, rate: rate, description: description)
                self.reviews.append(newReviews)
            }
        }
    }
}

Отсюда я бы хотелизвлечь rate из массива, присвоенного review и добавить Int для его суммирования.

Как мне суммировать значения в словаре?

1 Ответ

0 голосов
/ 17 декабря 2018

Можно попробовать

let res = reviews.map { $0.rate }.reduce(0,+)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...