Reputation: 1973
i have an array of objects that looks like this:
invitations: Array<record> = [new record()];
interface recordMap {
value:string;
err:string
}
export class record{
number: recordMap ;
deptNumber: recordMap ;
boothNumber: recordMap ;
primaryEmail: recordMap ;
members: recordMap [];
}
my backend request body has to look like this
[
{
"number": "string",
"deptNumber": 0,
"boothNumber": "string",
"primaryEmail": "string",
"members": [
"string"
]
}
]
this is what i have tried so far my struggle is for the members property because it is an array in the invitation array and I am trying to get only the value from it and push it to the request body array members.
the result of my code is code 400 bad request. How can i make this object?
const invitationArray = [];
this.invitations.forEach(invitation => {
invitationArray.push({
number: invitation.number.value,
deptNumber: invitation.deptNumber.value,
boothNumber: invitation.boothNumber.value,
primaryEmail: invitation.primaryEmail.value,
members: invitation.members.forEach(number => number.value)
});
});
Upvotes: 0
Views: 76
Reputation: 31125
You could try to use array map
method. From the docs:
The
map()
method creates a new array populated with the results of calling a provided function on every element in the calling array.
var members = [{ value: 'value1', error: 'error1' }, { value: 'value2', error: 'error2' }, { value: 'value3', error: 'error3' }, { value: 'value4', error: 'error4' }]
console.log(members.map(member => member.value));
Try the following
const invitationArray = [];
this.invitations.forEach(invitation => {
invitationArray.push({
number: invitation.number.value,
deptNumber: Number(invitation.deptNumber.value),
boothNumber: invitation.boothNumber.value,
primaryEmail: invitation.primaryEmail.value,
members: invitation.members.map(member => member.value)
});
});
Also it appears deptNumber
property is expected to be of type number
. I've converted it to number as well.
Upvotes: 1