Swift 评级系统循环和分配

Swift rating system loop and assign

尝试在 Swift 中构建评级系统并寻找一种更简洁的方法来遍历每个值。

private func calculateRating(user: String) throws -> String {
    let query = try Rating.makeQuery().filter("user", user).all()
    var fiveStars = [Int]()
    var fourStars = [Int]()
    var threeStars = [Int]()
    var twoStars = [Int]()
    var onestar = [Int]()
    if query.count > 1 {

        for rating in query {
            // Check each value and assign it to its associated value
            // insert large if/else condition here :)
        }
        // Perform calculation and return value below
        return ""
    } else {
        // Only one rating has been set
        return query[0].value
    }
}

目前我正在遍历每个值并将评分分配给它的关联数组 fiveStars fourStars 等。然后我将通过标准乘法方法计算评分。有没有更简洁的方法来遍历评级并将其分配给相关的 fiveStars 数组等而不创建长 if/else 条件?

谢谢

编辑:示例输出将是基于 1000 多个评级的一个四舍五入的值(满分 5),即五分之“4”。

let twoStars: [Int]  = query.filter {[=10=].val == 2} .map {[=10=].val}

以此类推