如何过滤比较2个JSON的数据并将结果保存在数组中

时间:2018-06-03 18:03:45

标签: ios json swift api swift4

我需要使用另一个用户的JSON API从JSON API中提取所有帖子标题,然后提取每个帖子的评论计数。 我在这里:

  1. USERS API:http://jsonplaceholder.typicode.com/users
  2. POSTS API:http://jsonplaceholder.typicode.com/posts
  3. 评论API:http://jsonplaceholder.typicode.com/comments
  4. 在用户中我有一个唯一的ID,在帖子中我有UserID,在评论中我有PostID。

    目前,我从3个数组中的所有3个API中提取了所有数据。 现在我需要创建两个函数:

    • getPostsTitleForSelectedUser()
    • getNumberOfCommentsForEachPost()

    以下是代码的一部分:

        class UserDetailsController: UIViewController {
    
        @IBOutlet weak var detailsTableView: UITableView!
    
    
        var usersArray = [User]()
        var postsArray = [Post]()
        var commentsArray = [Comment]()
    
    
    
        func getPostsTitleForSelectedUser() -> String{
    
            let postTitle: String? = "POST TITLE FOR TEST"
            return postTitle!
        }
    
        func getNumberOfCommentsForEachPost() -> String{
    
            let comments = "4131231231"
            return comments
        }
    
    
    }
    

1 个答案:

答案 0 :(得分:1)

尝试这样的事情

func getPostsTitleForSelectedUser(user: User) -> [String] {
    return postsArray.filter { (post) -> Bool in
        post.userId == user.id
        }.map { (post) -> String in
            return post.title
    }
}

func getNumberOfCommentsForEachPost(post: Post) -> Int {
    return commentsArray.filter { (comment) -> Bool in
        comment.postId == post.id
    }.count
}