我一直在搜索Stack帖子数小时,但似乎找不到我真正需要的东西。我有一个Blog模式,并且在索引页面上,我希望用户可以选择按作者筛选。但是,我在努力获得唯一的作者列表感到困惑。要创建页面过滤器,我需要作者用户名和objectId,但是当我尝试对包含objectid的数组进行过滤时,它将无法正常工作。
仅基于作者用户名的此过滤器可以正常工作:
let uniqueAuthors = [];
allBlogs.forEach(blog => {
if (!uniqueAuthors.includes(blog.author.username)) {
uniqueAuthors.push(blog.author.username);
return uniqueAuthors;
}
});
但是,如果我还要推送author.id,则过滤器将不再起作用(uniqueAuthors也将返回所有重复的作者)。
let uniqueAuthors = [];
allBlogs.forEach(blog => {
if (!uniqueAuthors.includes(blog.author.username)) {
uniqueAuthors.push([blog.author.username, blog.author.id]);
return uniqueAuthors;
}
});
我过滤此数据的正确/最佳方法是什么?