Задать вопрос
alkhimik
@alkhimik
Ученик.

Как из query string получить объект следующего вида?

Есть строка в формате query string:

'genre=comedy&year=2023&year=2024&year=2025'

Из нее надо получить объект следующего вида:

{
   genre: [ 'comedy' ],
   year: [ '2023', '2024', '2025' ],
}

Я написал функцию конвертации строки в объект:

function convertQueryStringToObject(str) {
  return str.split("&").reduce((acc, pairs) => {
      const [key, value] = pairs.split("=");
      acc[key] = [value];
      return acc;
  }, {});
}

Результат:

{
  genre: [ 'comedy' ],
  year: [ '2025' ]
}

Как получить массив всех значений?
  • Вопрос задан
  • 142 просмотра
Подписаться 1 Простой 2 комментария
Решение пользователя YepBro К ответам на вопрос (2)
yesbro
@yesbro
Думаю, помогаю думать
const convertQueryStringToObject = (paramsString) => {
  const searchParams = new URLSearchParams(paramsString)
  return Array
    .from(new Set(searchParams.keys()))
    .reduce((accumulator, value) => accumulator = {...accumulator, [value]: searchParams.getAll(value)}, {})
}
Ответ написан
Комментировать