我有大量的评论。假设评论看起来像这样:
{
_id: [ObjectID],
parentid: [ObjectID],
...
}
我有一个从数据库中检索到的所有评论的大型数组:
comments = [comment1, comment2, comment3]
为了得到任意评论的回复,我有一个这样的辅助函数:
function getReplies(comment, replies) {
return replies.filter(function(reply) {
return reply.parentid === comment._id
}
}
getReplies
然而,当许多评论已经被处理(每个只有一个父)或评论只有 1 个回复或根本没有回复(在评论线程中更深)时,这个函数将始终检查整个数组,这让我感到不安。
这是过度优化,但我想知道你们将如何解决这个问题。除非有更优雅的解决方案,否则我认为我不会更改此功能。您将如何构建此帮助程序,以便它不会不必要地处理相同的评论两次?