Quiero dividir objetos por ID de unidad de evaluación.
tengo esto
{ "name": "test", "description": "test", "asessment_units[]": ["2", "4", "5","8"] }y de este objeto quiero cuatro objetos (porque tengo 4 elementos en la unidad de evaluación).
1er objeto
{ "name": "test", "description": "test", "asessment_units[]": ["2"] }2do objeto
{ "name": "test", "description": "test", "asessment_units[]": ["4"] }3er objeto
{ "name": "test", "description": "test", "asessment_units[]": ["5"] }4to objeto
{ "name": "test", "description": "test", "asessment_units[]": ["8"] }Tal vez podrías usar Array.prototype. map y Object. assign :
const obj = { name: "test", description: "test", "asessment_units[]": ["2", "4", "5", "8"], }; const splitObjs = obj["asessment_units[]"].map(unit => Object.assign({}, obj, { "asessment_units[]": [unit], }) ); console.log(splitObjs);Puede usar Array.prototype.map() en asessment_units[] para lograr la transformación. Distribuya el name y las claves de description del objeto, ya que son comunes e inserte el valor respectivo en una matriz dentro de la devolución de llamada del map .
const obj = { "name": "test", "description": "test", "asessment_units[]": ["2", "4", "5","8"] } const res = obj['asessment_units[]'].map((val,index)=>{ return {...obj, ['asessment_units[]'] : [val]} })