url转换成数组无法修改p.split("=")[1]的值

问题遇到的现象和发生背景

今天用js写代码的时候遇到一个题目,把url转换成一个数组。
比如:http://localhost:8080/pro?a=1&b=%E5%BC%A0%E4%B8%89&c=undefined 转换为 { a: '1', b: '张三', c: 'false' }

遇到的问题:想要把最后的undefined修改为false,当我用split获得“?”以后的字符串,然后再用split获得“&”分割的数组。把数组带入for of循环进一步处理。这一部分代码如下:

for(p of param) {
    if(p.split("=")[1] == "undefined") {
      // p.split("=")[1] = "false"
      // result[p.split("=")[0]] = p.split("=")[1], 结果还是undefined,false没有修改成功
      result[p.split("=")[0]] = "false";
    } else {
      result[p.split("=")[0]] = p.split("=")[1];
    }
 }

使用注释部分无法赋值false给p.split("=")[1],输出结果依旧为undefined。测试了一下,只要是给p.split("=")[1]赋值都是是赋不上去的,想请教一下这是为什么呢?

问题我自己解决了,因为每次p.split("=")都会重新切割一次p,所以两次p.split("=")[1]中的内容是不想等的,这时候给前面的p.split("=")[1]赋值,后面是拿不到的。应该设置一个变量new = p.split("=")[1]再去给new赋值!

你这是要做替换字符串吗?还是干什么