通过JavaScript实现分页及搜索查询

通过JavaScript实现分页及搜索查询,第1张

          // 通过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;
            }
          };
        

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/788366.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-05
下一篇 2022-05-05

发表评论

登录后才能评论

评论列表(0条)

保存