您的位置:首页 > Web前端 > JavaScript

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

2021-01-22 22:59 253 查看

拼接搜索条件
{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,
})
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: