node实现文章分类和标签筛选功能

286 阅读1分钟

筛选时可能的情况:

1、没有选择分类,也没有选择标签

2、选择了分类,没有选择标签

3、没有选择分类,但是选择了标签

4、即选择了分类,也选择了标签

数据可能发生的情况

1、文章只属于一个分类,但是可以有多个标签,也可以只有一个,但至少有一个

2、未选择分类,接受的值为 0

3、未选择标签,接受的值为空数组  [ ]

4、文章只有一个标签时,数据为数字类型(例: 2 ),有多个标签时,数据为数组类型 (例: [2,3])

情况1: 如果两个都为空,则返回所有数据,不进行筛选

情况2: 选择了分类,没有选择标签,因为分类只允许有一个,所以直接遍历获取即可。

2.png

情况3:

没有选择分类,但是选择了标签 会有多个情况发生,如果标签只有一个,那么直接通过includes函数即可知道是否包含。

如果文章有多个标签,那么需要判断文章的标签和前端发送的数据是否有交集,如果有交集,就向前端返回数据。

在这里是通过判断去重之后的数据长度和去重之前的数据长度来判断是否有交集。

3.png

情况4:

即选择了分类,也选择了标签 这种情况需要进行两次筛选之后,再返回结果。

4.png

我的个人博客hyyyh.top