const source = [ { id: "1", data: { first_name: "Rian", last_name: "Nugraha" }, school: { id: "1", data: "PLMK-JKT" }, }, { id: "2", full_name: "Ari Santoso", school: { id: "1", short_name: "GRSR", data: "JKT" }, }, { id: "3", data: { first_name: "Rahman", last_name: "Sunggara" }, school: { id: "1", short_name: "GELM", data: "JKT" }, }, { id: "4", data: { first_name: "Rian", last_name: "Nugraha" }, school: { id: "2", data: "PLMK-BDG" }, }, ]entonces, quiero combinar first_name y last_name en el nombre completo de la matriz anidada o combinar short_name y datos en la matriz anidada de la escuela pero siempre sin definir, el resultado es el siguiente:
{ nombre : 'Rian Nugraha', nombre_escuela: 'PLMK-JKT }
Aquí cómo acceder a la matriz @ elemento (0) y combinar nombres y apellidos
var fullName = source[0].data.first_name + " " + source[0].data.last_name;Para agregar la escuela:
var fullNameAndSchool = source[0].data.first_name + " " + source[0].data.last_name + " is from school " + source[0].school.data;Hizo usando un operador ternario
const source = [ { id: "1", data: { first_name: "Rian", last_name: "Nugraha" }, school: { id: "1", data: "PLMK-JKT" }, }, { id: "2", full_name: "Ari Santoso", school: { id: "1", short_name: "GRSR", data: "JKT" }, }, { id: "3", data: { first_name: "Rahman", last_name: "Sunggara" }, school: { id: "1", short_name: "GELM", data: "JKT" }, }, { id: "4", data: { first_name: "Rian", last_name: "Nugraha" }, school: { id: "2", data: "PLMK-BDG" }, }, ] const resArray = source.map((el) => { let name = el.data? (el.data.first_name+" "+el.data.last_name): el.full_name; let school_name = el.school.short_name? (el.school.short_name+" "+el.school.data): el.school.data; const result = { name: name, school_name: school_name } return result; }) console.log(resArray)const result = source.map(({data, school, full_name}) => { return {name: (typeof data) === "undefined" ? full_name : `${data.first_name + " "+ data.last_name}`, school_name: school.hasOwnProperty("short_name") ? `${school.short_name + " "+ school.data}` : school.data}; }); console.log(result); /*[ { name: 'Rian Nugraha', school_name: 'PLMK-JKT' }, { name: 'Ari Santoso', school_name: 'GRSR JKT' }, { name: 'Rahman Sunggara', school_name: 'GELM JKT' }, { name: 'Rian Nugraha', school_name: 'PLMK-BDG' } ]*/