老师请帮我看看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的结果就不对了。

建议改成如下形式:

http://img.mukewang.com/climg/6113408c09e4772711990751.jpg

祝学习愉快!

0

0 学习 · 15276 问题

查看课程