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"
},
},
]
so, I want to combine first_name and last_name into fullname of the nested array or combine short_name and data in school nested array but always undefined, the result like below:
{ name : 'Rian Nugraha', school_name: 'PLMK-JKT }
Here how to access array @ element (0) and combine first and last names
var fullName = source[0].data.first_name + " " + source[0].data.last_name;
To add school:
var fullNameAndSchool = source[0].data.first_name + " " + source[0].data.last_name + " is from school " + source[0].school.data;
Did using a ternary operator
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' }
]*/