• 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,
          })
    
  • 相关阅读:
    Android中NFC编程
    动态的改变程序的主题
    第二章 Libgdx的目标和特性
    第一章 Libgdx简介
    JAVA过滤器和拦截器的区别(个人理解)
    Android下Activity的生命周期
    Ext JS 4.2.1 Beta 1发布了
    【翻译】Ext JS 4.2介绍
    jQuery 1.5发布 Ajax模块重写
    ASP.NET 服务器控件渲染到客户端之后对应的HTML标签
  • 原文地址:https://www.cnblogs.com/suwanbin/p/14315867.html
Copyright © 2020-2023  润新知