代码之家  ›  专栏  ›  技术社区  ›  Alien13

用于合并/组合两个URLSearchParam的Javascript函数

  •  0
  • Alien13  · 技术社区  · 3 年前

    const oldParams = 'foo=one&coo=two'
    const newParams = 'roo=three&moo=four'
    

    urlCombine(oldParams, newParams) 退货 foo=one&coo=two&roo=three&moo=four

    到现在为止,一直都还不错 newParams 更高的优先级,以便 key 新参数 oldParams value 属于 新参数 ,例如。

    const oldParams = 'foo=one&coo=two'
    const newParams = 'coo=three&foo=four'
    

    urlCombine(旧参数,新参数) 退货 foo=four&coo=three

    1 回复  |  直到 3 年前
        1
  •  2
  •   Thomas    3 年前

    使用 URLSearchParams 将字符串解析为键值对,然后进行组合。

    const oldParams = 'foo=one&coo=two'
    const newParams1 = 'roo=three&moo=four'
    const newParams2 = 'coo=three&foo=four'
    
    function urlCombine(a,b,overwrite=false){
      a = new URLSearchParams(a);
      const fn = overwrite ? a.set : a.append;
      for(let [key, value] of new URLSearchParams(b)){
        fn.call(a, key, value);
      }
      return a.toString();
    }
    
    console.log(urlCombine(oldParams, newParams1));
    console.log(urlCombine(oldParams, newParams2, false));
    console.log(urlCombine(oldParams, newParams2, true));