diff --git a/src/js/modules/ColumnCalcs/ColumnCalcs.js b/src/js/modules/ColumnCalcs/ColumnCalcs.js index d745dc070..316692eef 100644 --- a/src/js/modules/ColumnCalcs/ColumnCalcs.js +++ b/src/js/modules/ColumnCalcs/ColumnCalcs.js @@ -449,13 +449,14 @@ export default class ColumnCalcs extends Module{ var cells = []; - this.table.columnManager.columnsByIndex.forEach((column) => { + const hasFormatModule = this.table.modExists("format"); + for (const column of this.table.columnManager.columnsByIndex){ //set field name of mock column this.genColumn.setField(column.getField()); this.genColumn.hozAlign = column.hozAlign; - if(column.definition[pos + "CalcFormatter"] && this.table.modExists("format")){ + if(hasFormatModule && column.definition[pos + "CalcFormatter"]){ this.genColumn.modules.format = { formatter: this.table.modules.format.lookupFormatter(column.definition[pos + "CalcFormatter"]), params: column.definition[pos + "CalcFormatterParams"] || {}, @@ -482,7 +483,7 @@ export default class ColumnCalcs extends Module{ if(!column.visible){ cell.hide(); } - }); + } row.cells = cells; }; @@ -492,25 +493,24 @@ export default class ColumnCalcs extends Module{ //generate stats row generateRowData(pos, data){ - var rowData = {}, + const rowData = {}, calcs = pos == "top" ? this.topCalcs : this.botCalcs, type = pos == "top" ? "topCalc" : "botCalc", - params, paramKey; + paramKey = type + "Params"; - calcs.forEach(function(column){ - var values = []; - - if(column.modules.columnCalcs && column.modules.columnCalcs[type]){ - data.forEach(function(item){ + for(const column of calcs){ + const colCalcs = column.modules.columnCalcs; + if(colCalcs && colCalcs[type]){ + const values = []; + for(const item of data ){ values.push(column.getFieldValue(item)); - }); - - paramKey = type + "Params"; - params = typeof column.modules.columnCalcs[paramKey] === "function" ? column.modules.columnCalcs[paramKey](values, data) : column.modules.columnCalcs[paramKey]; + } - column.setFieldValue(rowData, column.modules.columnCalcs[type](values, data, params)); + const colCalc = colCalcs[paramKey]; + const params = typeof colCalc === "function" ? colCalc(values, data) : colCalc; + column.setFieldValue(rowData, colCalcs[type](values, data, params)); } - }); + } return rowData; } diff --git a/src/js/modules/Filter/Filter.js b/src/js/modules/Filter/Filter.js index d07576bb1..28cd0877e 100644 --- a/src/js/modules/Filter/Filter.js +++ b/src/js/modules/Filter/Filter.js @@ -841,22 +841,19 @@ export default class Filter extends Module{ if(this.table.options.filterMode !== "remote" && (this.filterList.length || Object.keys(this.headerFilters).length)){ - rowList.forEach((row) => { + for(const row of rowList){ if(this.filterRow(row)){ activeRows.push(row); } - }); - + } }else{ activeRows = rowList.slice(0); } if(this.subscribedExternal("dataFiltered")){ - - activeRows.forEach((row) => { + for(const row of activeRows){ activeRowComponents.push(row.getComponent()); - }); - + } this.dispatchExternal("dataFiltered", this.getFilters(true), activeRowComponents); } @@ -865,38 +862,34 @@ export default class Filter extends Module{ //filter individual row filterRow(row, filters){ - var match = true, - data = row.getData(); - - this.filterList.forEach((filter) => { + const data = row.getData(); + + for(const filter of this.filterList){ if(!this.filterRecurse(filter, data)){ - match = false; + return false; } - }); - + } - for(var field in this.headerFilters){ + for(const field in this.headerFilters){ if(!this.headerFilters[field].func(data)){ - match = false; + return false; } } - return match; + return true; } filterRecurse(filter, data){ - var match = false; - if(Array.isArray(filter)){ - filter.forEach((subFilter) => { + for(const subFilter of filter){ if(this.filterRecurse(subFilter, data)){ - match = true; + return true; } - }); + } }else{ - match = filter.func(data); + return filter.func(data); } - return match; + return false; } } \ No newline at end of file