Reputation: 43
This is my array:
const array = [
{
"fare": "399.00",
"passenger": {
"age": "21",
"gender": "MALE",
"name": "Test1"
},
},
{
"fare": "399.00",
"passenger": {
"age": "21",
"gender": "FEMALE",
"name": "Test2"
},
}
]
How to map the object inside the array, and how to convert the object to the required output
Required output:
Test1(M), Test2(F)
Above contains "name" and gender - if its male then just "M" and if its female just "F"
As of now i tried,
array.map(o => ({ name: o.passenger.name, gender: o.passenger.gender })))
But how to convert this as expected output !
Upvotes: 0
Views: 113
Reputation: 11011
Use map
and destructruing
const tests = (arr) =>
arr
.map(
({
passenger: {
gender: [G],
name,
},
}) => `${name}(${G})`
)
.join(", ");
const array = [
{
fare: "399.00",
passenger: {
age: "21",
gender: "MALE",
name: "Test1",
},
},
{
fare: "399.00",
passenger: {
age: "21",
gender: "FEMALE",
name: "Test2",
},
},
];
console.log(tests(array));
Upvotes: 0
Reputation: 178384
Like this
const array = [{ "fare": "399.00", "passenger": { "age": "21", "gender": "MALE", "name": "Test1" }, }, { "fare": "399.00", "passenger": { "age": "21", "gender": "FEMALE", "name": "Test2" }, } ];
const output = array
.map(({passenger}) => `${passenger.name}(${passenger.gender.slice(0,1)})`)
.join(", ")
console.log(output);
Upvotes: 2
Reputation: 16447
You can convert the objects to strings and join them
const array = [{ "fare": "399.00", "passenger": { "age": "21", "gender": "MALE", "name": "Test1" }, }, { "fare": "399.00", "passenger": { "age": "21", "gender": "FEMALE", "name": "Test2" }, } ]
const output = array.map(o => o.passenger.name + (o.passenger.gender === "MALE" ? "(M)" : "(F)")).join(', ')
console.log(output)
Upvotes: 0
Reputation: 1287
Is this the expected result you want?
const array = [{
"fare": "399.00",
"passenger": {
"age": "21",
"gender": "MALE",
"name": "Test1"
},
}, {
"fare": "399.00",
"passenger": {
"age": "21",
"gender": "FEMALE",
"name": "Test2"
},
}]
const passengers = array.map(o => {
const gender = o.passenger.gender == 'MALE' ? 'M' : 'F';
return o.passenger.name + '(' + gender + ')';
})
console.log(passengers.join(', ')); // Test1(M), Test2(F)
Upvotes: 0
Reputation: 43547
Simply loop your array and make new string:
const array = [
{
"fare": "399.00",
"passenger": {
"age": "21",
"gender": "MALE",
"name": "Test1"
},
},
{
"fare": "399.00",
"passenger": {
"age": "21",
"gender": "FEMALE",
"name": "Test2"
},
}
];
var states = array.map((o) => o.passenger.name + '(' + o.passenger.gender.substring(0, 1) + ')')
console.log(states);
Upvotes: 0