老师请帮我看看url1为什么不对
来源:2-4 编程练习
weixin_精慕门9462467
2021-08-11 10:42:42
let url = 'https://www.imooc.com/course/list?';
let url1 ='https://www.imooc.com/course/list?username=xm';
let url2 ='https://www.imooc.com/course/list?username=xm&';
const addURLParam = (url, name, value) => {
// 在此补充代码
if(url.includes('?')){
url +=`${name}=${value}`
}else if(!url.includes('&') && url.includes('?')){
url +=`&${name}=${value}`
}else if(url.includes('&')&&url.includes('?')){
url +=`${name}=${value}`
}
else{
url +=`?${name}=${value}`
}
return url;
};
url = addURLParam(url, 'password', 'admin');
url1 = addURLParam(url1, 'password', 'admin');
url2 = addURLParam(url2, 'password', 'admin');
document.write(url,'<br>');
document.write(url1,'<br>');
document.write(url2,'<br>');
1回答
好帮手慕久久
2021-08-11
同学你好,判断逻辑不正确,导致url1不正确。
if中,条件是“url包含?”,而url、url1、url2都满足该条件,所以三者都会执行if中的代码,因此url1会直接拼接上“password=admin”,导致结果不对。
而其他条件,也不能精准的提炼出某一个url,比如else if中的条件是“包含?并且不包含&”,url和url1都满足该条件,那么都会直接追加“&password=admin”,此时url的结果就不对了。
建议改成如下形式:
祝学习愉快!
相似问题