JS.18 · Строки
Задача
Превратить строку вида ?a=1&b=2 в объект ключ-значение.
Алгоритм
Строка делится по &, каждая пара — по =, ключ и значение раскодируются decodeURIComponent.
Исходный код
// Разбор query-строки URL
function parseQuery(q) {
const o = {};
for (const part of q.replace(/^\?/, '').split('&')) {
if (!part) continue;
const [k, v] = part.split('=');
o[decodeURIComponent(k)] = decodeURIComponent(v || '');
}
return o;
}
console.log(parseQuery('?id=42&name=Alex&mode=fast'));
Пояснения
Ведущий знак ? отбрасывается регуляркой; пустые пары пропускаются.