dzUtil.js 872 B

12345678910111213141516171819202122232425262728293031
  1. /**
  2. * 扩展es6函数 fromEntries
  3. * @param iterable
  4. * @returns {*}
  5. */
  6. Object.fromEntries = function fromEntries (iterable) {
  7. return [...iterable].reduce((obj, [key, val]) => {
  8. obj[key] = val;
  9. return obj;
  10. }, {});
  11. };
  12. /**
  13. *
  14. * @param url 原始接口链接,支持带参数
  15. * @param params_str 拼接搜索字符串 如 ?a=1&b=2
  16. * @returns {string} 返回拼接后的完整链接,支持带上原始接口链接的hash
  17. */
  18. const buildUrl = function (url,params_str){
  19. const u = new URL(url);
  20. const p = new URLSearchParams(params_str);
  21. const api = u.origin + u.pathname;
  22. let params = Object.fromEntries(u.searchParams.entries());
  23. let params_obj = Object.fromEntries(p.entries());
  24. Object.assign(params,params_obj);
  25. let plist = [];
  26. for(let key in params){
  27. plist.push(key+'='+params[key]);
  28. }
  29. return api + '?' + plist.join('&') + u.hash
  30. };