Tengo datos de cadena, necesito convertirlos en una matriz de objetos en javascript
Debajo del código probado
var splitarr = sample.split('|'); var result = splitarr.map(e=>{ details: e, values: splitarr[e] }) var sample = "finance=60|IT=88|sales=50" Expected Output [ {"details": "finance","tag":60}, {"details": "IT","tag":88}, {"details": "sales","tag":50} ]Necesita otra división por = , intente:
var sample = "finance=60|IT=88|sales=50"; var splitarr = sample.split('|'); var result = splitarr.map(e=>{ let keyVal = e.split('='); return { details: keyVal[0], tag:keyVal[1] } }) console.log(result); Además, cuando devuelve el objeto desde la función de flecha, debe usar corchetes () , de lo contrario, se considerará como un bloque de código, intente:
var sample = "finance=60|IT=88|sales=50"; var splitarr = sample.split('|'); var result1 = splitarr.map(e=>{ details: e }) console.log(result1); var result2 = splitarr.map(e=>({ details: e })) console.log(result2);Otra forma de transformar una cadena en un objeto.
const sample = "finance=60|IT=88|sales=50"; const result = sample .split('|') .map((e) => e.split('=')) .map(([details, tag]) => ({ details, tag })); console.log(result); .as-console-wrapper{min-height: 100%!important; top: 0}Observaciones :
values , debería ser una tag .array de elementos. Este splitarr[e] no funcionará o no existirá. Puede usar el método String.split() para obtener los details y el valor de la tag .
Demostración de trabajo:
const sample = "finance=60|IT=88|sales=50"; const splitarr = sample.split('|'); const result = splitarr.map((e) => { return { details: e.split('=')[0], tag: e.split('=')[1] } }); console.log(result);