Преобразовать строку в объект - Javascript - PullRequest
0 голосов
/ 03 мая 2020

У меня есть строка, и я хотел бы преобразовать ее в объект на основе определенных условий.

Моя строка здесь '?client=66&instance=367&model=125'. Я хотел бы преобразовать его в объект типа

{
  "client": 66,
  "instance": 367,
  "model": 125
}

Мне удалось это сделать, но я хотел найти лучшее решение. Ниже моя реализация:

const path = '?client=66&instance=367&model=125';

const replacedPath = path.replace(/\?|&/g, '');

const clearedPath = replacedPath.match(/[a-z]+|[^a-z]+/gi).map(str => str.replace(/=/g, ''))

var output = {}
clearedPath.forEach((x, i, arr) => {
  if (i % 2 === 0) output[x] = Number(arr[i + 1]);
});

console.log(output)

Пожалуйста, советуйте. Любая помощь высоко ценится.

1 Ответ

1 голос
/ 03 мая 2020
Object.fromEntries(
    'client=66&instance=367&model=125'.split('&').map(it => it.split('='))
)

просто удалите первый '?':

let src = '?client=66&instance=367&model=125';
if (src[0] === '?') src = src.substring(1);
const obj = Object.fromEntries(
    'client=66&instance=367&model=125'.split('&').map(it => it.split('='))
);
console.log(obj);

отпечатки {client: "66", instance: "367", model: "125"}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...