// 通过url获取参数
let url = context.ctx.request.originalUrl;
// 解析url中的汉字
url = decodeURI(url);
let select = {};
// 将搜索条件转为一个对象
if (url.indexOf('?') != -1) {
let arr = url.slice(url.indexOf('?') + 1).split('&');
arr.forEach(item => {
let param = item.split('=');
select[param[0]] = param[1];
});
}
//准备进行分类筛选 select:筛选条件 arr:数据源
const deduplicationAfter = (select, arr) => {
// 去掉pageNum和pageSize作为筛选条件
let selectKey = Object.keys(select);
if (selectKey.includes('pageNum')) {
selectKey.splice(selectKey.indexOf('pageNum'), 1);
}
if (selectKey.includes('pageSize')) {
selectKey.splice(selectKey.indexOf('pageSize'), 1);
}
// 判断去掉pageNum和pageSize后是否有其他搜索条件
if (selectKey.length > 0) {
let newArray = selectKey.reduce((pre, cur) => {
return pre.filter(item => {
return select[cur] == item[cur];
});
}, arr);
// 判断过滤后的结果是否为空
if (
// typeof select.pageNum !== '' ||
// typeof select.pageSize !== '' ||
newArray.length === 0 ||
newArray.length < (select.pageNum - 1) * select.pageSize ||
select.pageNum * 1 < 0 ||
select.pageSize * 1 < 0
) {
return '暂无数据';
}
return newArray;
} else {
// 如果筛选出来的数据不足一页 就直接return
if (arr.length < select.pageSize * 1) {
return arr;
}
// 如果筛选出来的数据大于页码 就开始进行分页处理
if (arr.length > select.pageSize * 1) {
return arr.splice((select.pageNum - 1) * select.pageSize, select.pageSize * 1);
}
return arr;
}
};
03-26
2440
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)