a continuación está mi función que tiene método de reducción
getFilters(gridFilters, columnList){ const filtersArray = []; let filterObject = {}; gridFilters.forEach((ele, i, arr) => { filtersArray.push(...arr[i].filters); }); const _filArr = filtersArray.reduce((acc, {field, operator, value}) => { filterObject['columnName'] = field; filterObject['filterValue1'] = value; filterObject['filterOperator1'] = operator; filterObject['filterValue2'] = ''; filterObject['filterOperator2'] = ''; columnList.push(filterObject); return acc; }, {}); return columnList; Aquí, filtersArray tendrá 2 elementos de matriz como '
Array(2) 0: field: "objectType" operator: "contains" value: "lic" [[Prototype]]: Object 1: field: "attributeDisplayName" operator: "contains" value: "date" [[Prototype]]: Object length: 2 [[Prototype]]: Array(0) Pero después de enviar los valores a la matriz columnList , veo que el segundo objeto (que tiene el attributeDisplayName ) viene para ambos valores. Básicamente, el primer objeto (que tiene objectType ) se sobrescribe con el segundo objeto en la matriz.
Así es como se columnList la lista de columnas
Array(2) 0: columnName: "attributeDisplayName" filterOperator1: "contains" filterOperator2: "" filterValue1: "date" filterValue2: "" [[Prototype]]: Object 1: columnName: "attributeDisplayName" filterOperator1: "contains" filterOperator2: "" filterValue1: "date" filterValue2: "" [[Prototype]]: Object length: 2 [[Prototype]]: Array(0)¿Puede alguien sugerir qué estoy haciendo mal aquí? Gracias