// 假如我们需要实现下列需求:
// 数据请求方式是get,参数有四个分别是obj的每个key,
// 如果key对应的value存在则正常拼接,如果不存在则直接去掉这一项
// 第一种:
// 定义一个obj,里面a,c的value为空
var obj={
a:"",
b:2,
c:"",
d:4
}
// 需要请求的url地址
var url="aaa/bbb?"
if(obj.a){
// 如果obj.a存在,则进行正常拼接
url=url+'a'+'='+obj.a;
}
if(obj.b){
// 如果obj.a存在,还需要用三目判断前面的key和对应value是否存在
// 如果存在则需加&,如果不存在则直接拼接
url=url+(url=='aaa/bbb?'?'b':'&b')+'='+obj.b;
}
if(obj.c){
url=url+(url=='aaa/bbb?'?'c':'&c')+'='+obj.c;
}
if(obj.d){
url=url+(url=='aaa/bbb?'?'d':'&d')+'='+obj.d;
}
// 第二种:
// 定义一个obj,里面a,c的value为空
var obj={
a:null,
b:0,
c:"",
d:0
}
// 需要进行请求的url地址
var url="aaa/bbb?"
遍历整个对象
for (let key in obj){
// 如果该项的obj不为空(等于0也可以),并且是第一个不为空的参数时,直接进行拼接,不用加&
if(url==='aaa/bbb?' && obj[key] || url==='aaa/bbb?' && obj[key]===0){
url=url+key+'='+obj[key]
// 如果该项的obj不为空(等于0也可以),但不是第一个不为空的参数时,加&进行拼接
}else if(url!=='aaa/bbb?' && obj[key] || url!=='aaa/bbb?' && obj[key]===0){
url=url+'&'+key+'='+obj[key]
}
}
console.log(url)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!