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,
          })
    
  • 相关阅读:
    Nginx常用命令
    Nginx进程模型
    华为联运游戏或应用审核驳回:使用花币充值时,对支付延时处理不当,导致商品不到账
    使用Data Ability读取系统设置项
    100个HarmonyOS 2.0开发者Beta公测名额,限时认领!
    【有奖活动】HarmonyOS开发者创新大赛颁奖典礼丨见证星星之火燃爆盛夏
    你其实可以更快!用Toolkit拖拽式编码方法帮你快速提升开发效率
    真机调试设备不够?华为AGConnect云调试帮你忙
    华为后台某应用商品展示价格币种随其他应用配置而变化
    HMS Core.Sparkle影音娱乐创新沙龙邀您参加
  • 原文地址:https://www.cnblogs.com/suwanbin/p/14315867.html
Copyright © 2011-2022 走看看