Как превратить строку в объект?

мне нужно преобразовать строку

width:100px;  height:100px; background:red;  transform-origin: 100% 0%; transform:  translate(100px, 100px)  scale(1, 0.5) skew(30deg, 20deg) rotate(1deg);"

В объект

var arr = {
'width': '100px',
'height': '100px',
'background': 'red',
'transform-origin' : ['100%' ,  '0%']
'transform': {
'translate': ['100px', '100px'],
'scale': [ '1',  '0.5'],
'skew': ['30deg', '20deg'],
'rotate': '1deg'
}
};

Я плохо разбираюсь в регулярных выражениях. Поэтому кто нибудь может мне помочь с этим ?


Ответы (1 шт):

Автор решения: Alex P

Может есть возможность поменять формат исходной строки? Вам подошла бы команда JSON.parse(), но строка должна быть формата

{"width":"100px","height":"100px","background":"red","transform-origin":["100%","0%"],"transform":{"translate":["100px","100px"],"scale":["1","0.5"],"skew":["30deg","20deg"],"rotate":"1deg"}}

Если взять ваш объект:

let arr = {
  'width': '100px',
  'height': '100px',
  'background': 'red',
  'transform-origin' : ['100%' ,  '0%'],
  'transform': {
    'translate': ['100px', '100px'],
    'scale': [ '1',  '0.5'],
    'skew': ['30deg', '20deg'],
    'rotate': '1deg'
  }
};

то в такую строку его можно преобразовать командой

let arr_string = JSON.stringify(arr)

То есть JSON.stringify() и JSON.parse() команды обратные друг другу.

arr = JSON.parse(arr_string )
→ Ссылка