zoukankan      html  css  js  c++  java
  • js 拼接搜索条件 {a: 'xx', b: 'yyy', c: 'zzz'} 成 ?a=xx&b=yyy&c=zzz

    拼接搜索条件 {a: 'xx', b: 'yyy', c: 'zzz'}?a=xx&b=yyy&c=zzz

      // 只保留有值的搜索条件,拼接成 ?a=xx&b=yyy&c=zzz (传入空对象会返回空字符串)
      searchObjToQueryString(searchObj) {
        // 默认约定搜索条件都是字符串
        let queryStr = ''
        Object.entries(searchObj).forEach((item, index) => {
          // 字段为空、所属范围是金东区,则不拼接到查询条件里
          if (item[1] === '') {
            // 仅是结束本轮循环,不是跳出整个循环
            return false
          } else if (item[0] == 'regional' && item[1] == '金东区') {
            // 仅是结束本轮循环,不是跳出整个循环
            return false
          }
    
          // 根据第一位是不是 "?" 来决定如何拼接
          if (queryStr[0] != '?') {
            queryStr = `?${item[0]}=${item[1]}`
          } else {
            queryStr = queryStr + `&${item[0]}=${item[1]}`
          }
        })
        // console.log(queryStr, 'searchObjToQueryString queryStr')
        return queryStr
      },
    

    高级用法

      // 只保留有值的搜索条件,拼接成 ?a=xx&b=yyy&c=zzz (传入空对象会返回空字符串)
      searchObjToQueryString(searchObj) {
        // 默认约定搜索条件都是字符串
        let queryStr = ''
        Object.entries(searchObj).forEach((item, index) => {
          // 字段为空、所属范围是金东区,则不拼接到查询条件里
          if (item[1] === '') {
            // 仅是结束本轮循环,不是跳出整个循环
            return false
          } else if (item[0] == 'regional' && item[1] == '金东区') {
            // 仅是结束本轮循环,不是跳出整个循环
            return false
          }
    
          // 根据第一位是不是 "?" 来决定如何拼接
          if (queryStr[0] != '?') {
            queryStr = `?${item[0]}=${item[1]}`
          } else {
            queryStr = queryStr + `&${item[0]}=${item[1]}`
          }
        })
        // console.log(queryStr, 'searchObjToQueryString queryStr')
        return queryStr
      },
    
      // 按搜索条件搜索地块
      searchDikuai(searchObj) {
        // { region, searchValue, minValue, maxValue, industry }
        console.log(searchObj, 'searchObj')
        let that = this
        wx.request({
          url: urlList.searchDikuai + this.searchObjToQueryString(searchObj),
          method: "GET",
          // header: {
          //   'content-type': 'application/x-www-form-urlencoded'
          // },
          success(res) {
            console.log(res, 'searchDikuai res')
            if (res.data.msg == '请求成功') {
              let data = res.data.data
              // console.log(data, 'searchDikuai data')
              that.setData({
                listData: data
              })
            }
          },
          fail(err) {
            console.log(err, 'err')
          }
        })
      },
          
          
          // 调用搜索方法
          this.searchDikuai({
            regional: regional,
            searchValue: searchValue,
            minValue: minValue,
            maxValue: maxValue,
            industry: industry,
          })
    
  • 相关阅读:
    ELK+Kafka+Beats实现海量日志收集平台(三)
    ELK+Kafka+Beats实现海量日志收集平台(二)
    ELK+Kafka+Beats实现海量日志收集平台(一)
    Linux 上安装logstash-6.6.0及配置kafka输入
    Linux 上安装filebeat-6.6.0
    SpringBoot与Kafka整合实现简单分布式消息队列
    logstash-6.6.0.tar.gz、filebeat-6.6.0-linux-x86_64.tar.gz 下载百度云
    Centos 7.X 上安装Kafka及一些常用命令
    Linux MariaDB 10.4.8 官网地址下载及百度云
    [Errno 28] No space left on device ERROR: Could not install packages due to an EnvironmentError
  • 原文地址:https://www.cnblogs.com/suwanbin/p/14315867.html
Copyright © 2011-2022 走看看