Цель: создать функцию
getUrlParams(url)
, которая принимает URL-строку и возвращает объект, содержащий все её GET-параметры в виде пар «ключ-значение».
%20
должен стать пробелом).function getUrlParams(url) {
// Создаём экземпляр URL, чтобы легко получить доступ к searchParams
const searchParams = new URL(url).searchParams;
// Конвертируем итератор URLSearchParams в объект
return Object.fromEntries(searchParams.entries());
}
Почему так:
function getUrlParams(url) {
const params = {};
const urlParts = url.split('?');
if (urlParts.length > 1) {
const queryString = urlParts[1];
const pairs = queryString.split('&');
for (const pair of pairs) {
// Обрабатываем случай, когда есть ключ, но нет значения (например, ?a&b=2)
const [key, value] = pair.split('=');
if (key) {
// decodeURIComponent для раскодирования, например, %20 в пробел
params[decodeURIComponent(key)] = decodeURIComponent(value || '');
}
}
}
return params;
}
Почему так:
Напишите функцию getUrlParams
, которая принимает на вход строку URL и возвращает объект, где ключами являются имена GET-параметров, а значениями — их значения.
getUrlParams('https://example.com?a=1&b=hello'); // { a: '1', b: 'hello' }
getUrlParams('https://example.com?search=what%20is%20this'); // { search: 'what is this' }
getUrlParams('https://example.com'); // {}
getUrlParams
.%20
должно стать пробелом).Цель: создать функцию
getUrlParams(url)
, которая принимает URL-строку и возвращает объект, содержащий все её GET-параметры в виде пар «ключ-значение».
%20
должен стать пробелом).function getUrlParams(url) {
// Создаём экземпляр URL, чтобы легко получить доступ к searchParams
const searchParams = new URL(url).searchParams;
// Конвертируем итератор URLSearchParams в объект
return Object.fromEntries(searchParams.entries());
}
Почему так:
function getUrlParams(url) {
const params = {};
const urlParts = url.split('?');
if (urlParts.length > 1) {
const queryString = urlParts[1];
const pairs = queryString.split('&');
for (const pair of pairs) {
// Обрабатываем случай, когда есть ключ, но нет значения (например, ?a&b=2)
const [key, value] = pair.split('=');
if (key) {
// decodeURIComponent для раскодирования, например, %20 в пробел
params[decodeURIComponent(key)] = decodeURIComponent(value || '');
}
}
}
return params;
}
Почему так:
Напишите функцию getUrlParams
, которая принимает на вход строку URL и возвращает объект, где ключами являются имена GET-параметров, а значениями — их значения.
getUrlParams('https://example.com?a=1&b=hello'); // { a: '1', b: 'hello' }
getUrlParams('https://example.com?search=what%20is%20this'); // { search: 'what is this' }
getUrlParams('https://example.com'); // {}
getUrlParams
.%20
должно стать пробелом).Редактор кода намеренно скрыт на мобильном.
Поверь, так лучше: я оберегаю тебя от искушения писать код в неидеальных условиях. Маленький экран и виртуальная клавиатура — не лучшие помощники для программиста.
📖 Сейчас: Изучи задачу, продумай решение. Действуй как стратег.
💻 Потом: Сядь за компьютер, открой сайт и реализуй все идеи с комфортом. Действуй как код-джедай!