🌝目的
写在前边:
感谢师兄指导。
业务需求
✅代码
获取参数
function getUrlQueryParams(url) {
const params = {};
const excludeParams = ['X', 'Y']; // 不传的参数列表 对应业务2
const queryArr = url.split('?')
if (queryArr.length && queryArr[1]) {
const keyValuePairs = queryArr[1].split('&');
keyValuePairs.forEach((pair) => {
const [key, value] = pair.split('=');
if (key && !excludeParams.includes(key)) {
// 如果觉得不保险,用(2)替代
params[key] = value; (1)
// params[key] = decodeURIComponent(value); (2)
}
});
}
return params;
}
拼接参数
function spliceUrl(url, params) {
if (!url) {
return ''
}
let keys = Object.keys(params)
if (keys.length === 0) {
return url
}
let base = url.indexOf('?') > -1 ? `${url}&` : `${url}?`
return keys.reduce((acc, v, i) => {
if (i === 0) {
return (acc += `${v}=${params[v]}`)
} else {
return (acc += `&${v}=${params[v]}`)
}
}, base)
}
使用
spliceUrl( ${你要拼接的地址}, getUrlQueryParams(window.location.href)
🎦结语
订
改了很多之前不对的方法,或者说是兼容性不好的方法;虽然有的方法很好用,用起来很简单。但还是选择最兼容的版本。
特地,感谢师兄的指导。
有用,点个赞再走吧? 👀