问题描述:
工作中有时候需要将URL字符串转换为需要的对象,如图:
baidu.com?a=aaa&b=bbb&c=ccc
需要转换成:
{
a: 'aaa',
b: 'bbb',
c: 'ccc'
}
下面将提供几个写法:
1、ES6写法:
getUrlParametersAll = (url) => !url.split('?')[1] ? null : url.split('?')[1].split('&').reduce((res, item) => ({...res, [item.split('=')[0]]: item.split('=')[1]}), {});
2、TS写法:
const getUrlParametersAll = (url: string): Object | null => !url.split('?')[1] ? null : url.split('?')[1].split('&').reduce((res, item) => ({...res, [item.split('=')[0]]: item.split('=')[1]}), { });
3、ES5写法:
function getUrlParametersAll(url) {
if (!url.includes("?")) return url;
let result = {};
if (url.indexOf("?") !== -1) {
let str = url.substr(url.indexOf("?") + 1);
let strs = str.split("&");
for (let i = 0; i < strs.length; i++) {
result[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);
}
}
return result;
}
查看: