Быстрый пример того, как вы могли бы сделать это, используя регулярное выражение и сводя результаты к объекту:
function parseTransform(transform) {
return Array.from(transform.matchAll(/(\w+)\((.+?)\)/gm))
.reduce((agg, [, fn, val]) => ({
...agg,
[fn]: val
})
, {});
}
const res = parseTransform(`rotate(-10 50 100)
translate(-36 45.5)
skewX(40)
scale(1 0.5)`);
Выходные данные:
{rotate: "-10 50 100", translate: "-36 45.5", skewX: "40", scale: "1 0.5"}
В этом В версии мы перезаписываем значение функции, если оно появляется дважды. Вы можете объединить их вместе, если некоторые свойства могут появляться более одного раза.