Below is my array of objects
[
{ field: 'EXPECTEDDATE', operator: 'gte', value: '20200601' },
{ field: 'EXPECTEDDATE', operator: 'lte', value: '20200630' },
{ field: 'PYNAME', operator: 'contains', value: 'abc' },
{ field: 'DEPT', operator: 'eq', value: 'IT' }
]
I want to change the format of it to pass it to an API like below
{
attibuteName: 'PYNAME',
filterOperator1: 'contains',
filterValue1: 'abc',
filterOperator2: '',
filterValue2: '',
},
{
attibuteName: 'DEPT',
filterOperator1: 'eq',
filterValue1: 'IT',
filterOperator2: '',
filterValue2: '',
},
{
attibuteName: 'EXPECTEDDATE',
filterOperator1: 'gte',
filterValue1: '20200601',
filterOperator2: 'lte',
filterValue2: '20200630',
}
Below is my current code and I am stuck at merging the filterOperator2 and filterValue2 to same object for the same field in forEach loop.
filtersArray.forEach((element, index, array) => {
filterObject = gridColumns.find(currField => currField.attributeName === element.field);
const filop1 = 'filterOperator1';
const filval1 = 'filterValue1';
const filop2 = 'filterOperator2';
const filval2 = 'filterValue2';
filterObject[filop1] = element.operator;
filterObject[filval1] = element.value;
columnList.push(filterObject);
});
return columnList;
}
Please suggest how can I do this. Thanks.