I have an array of objects that look like this
[
{
applicationNumber:'227114'
applicationStatus:0,
dateCreated: "01-10-2010"
},
{
companyInformationModel:
{
companyInformationId: '78fe1852-5a26-4624-925c-74653de9dad9',
companyName: 'Company Test',
contactName: 'Test Contact',
primaryPhone: '123-234-2343',
secondaryPhone: null
},
{
locationInformationModels:
[
{
"Address": "123 Main St",
"City": "My City"
},
{
"Address": "123 Not Main St",
"City": "Your City"
}
]
]
I want to grab only these fields and assign them to its own array (application nummber, applicationstatus, companyname, contactname, Address, City)
What is the most efficient way that can I do that in typescript? I want to assign this data to an ag-grid datasource.
onGridReady(params: GridReadyEvent) {
this.gridApi = params.api;
this.gridColumnApi = params.columnApi;
this.assessmentService.getAssessment().subscribe(data =>{
let assessment = <-------------------------Here is where I would parse the data
this.assessmentData = assessment;
const sortModel = [{colId: 'dateCreated', sort: 'desc'}];
this.sortGrid(params, 'dateCreated', 'desc')
this.gridApi.setRowData(this.assessmentData.slice(0, 10));
params.api!.setRowData(this.assessmentData.slice(0, 10))
this.loading = false;
console.log(this.assessmentData);
});
}
const data = [
{
applicationNumber: '227114',
applicationStatus: 0,
dateCreated: "01-10-2010"
},
{
companyInformationModel:
{
companyInformationId: '78fe1852-5a26-4624-925c-74653de9dad9',
companyName: 'Company Test',
contactName: 'Test Contact',
primaryPhone: '123-234-2343',
secondaryPhone: null
},
locationInformationModels:
[
{
"Address": "123 Main St",
"City": "My City"
},
{
"Address": "123 Not Main St",
"City": "Your City"
}
]
}
];
onGridReady(params: GridReadyEvent) {
this.gridApi = params.api;
this.gridColumnApi = params.columnApi;
this.assessmentService.getAssessment().subscribe(data => {
const assessment = data.map(item => ({
applicationNumber: item.applicationNumber,
applicationStatus: item.applicationStatus,
companyName: item.companyInformationModel?.companyName,
contactName: item.companyInformationModel?.contactName,
Address: item.locationInformationModels?.[0]?.Address,
City: item.locationInformationModels?.[0]?.City,
}));
this.assessmentData = assessment;
const sortModel = [{ colId: 'dateCreated', sort: 'desc' }];
this.sortGrid(params, 'dateCreated', 'desc');
this.gridApi.setRowData(this.assessmentData.slice(0, 10));
params.api!.setRowData(this.assessmentData.slice(0, 10));
this.loading = false;
console.log(this.assessmentData);
});
}