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

问题描述 投票:0回答:1

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

  1. 用户API:http://jsonplaceholder.typicode.com/users
  2. 帖子 API:http://jsonplaceholder.typicode.com/posts
  3. 评论API:http://jsonplaceholder.typicode.com/comments

在用户中我有一个唯一的 ID,在帖子中我有 UserID,在评论中我有 PostID。

目前,我从三个数组中的所有三个 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
    }


}
ios json swift swift4
1个回答
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
}
© www.soinside.com 2019 - 2024. All rights reserved.