Я предполагаю, что вы думаете об ассоциативном массиве, который JavaScript не поддерживает. Тем не менее, объекты в JavaScript могут почти рассматриваться как ассоциативные массивы, поскольку объект на самом деле является просто корзиной для хранения пар ключ / значение. С учетом сказанного ниже приведен некоторый код, который будет анализировать вашу строку и создавать литерал объекта. В коде есть второй пример, который вместо этого будет хранить каждую пару ключ / значение в виде строки в массиве:
//The original string
var s = "'id': '123', 'name': 'Bob', 'revenue': '51.1'";
//Turn the string into a structured object
var f = s.split(',').map(s => {
var kv = s.split(':');
var k = kv[0].trim();
var v = kv[1].trim();
return {
k,
v
};
});
//Use reduce to compose into a larger object
var o = f.reduce((accum, el) => {
var {
k,
v
} = el;
accum[k.replace(/'/gi, '')] = v;
return accum;
}, {});
console.log(o);
//Or keep each item as a string in an array
var a = f.reduce((accum, el) => {
var {
k,
v
} = el;
accum.push(`${k.replace(/'/gi, '')}:${v}`);
return accum;
}, []);
console.log(a);