react 数组根据列处理数据格式, 把每列数据都根据材料和年份进行处理
根据每一列写一个函数来处理每一个参数:
function generateDefaultData(startYear, endYear, data, materialName, columnName) {
let foamParamsData = data.foam_params_data;
const dataParams = JSON.parse(foamParamsData);
let columnData = dataParams.slice(1).map(row => row[dataParams[0].indexOf(columnName)]);
let defaultData = [['', ...materialName]];
for (let i = 0; i <= (endYear - startYear); i++) {
const year = startYear + i;
const rowData = [year];
for (let j = 1; j < defaultData[0].length; j++) {
rowData.push(columnData[i]);
}
defaultData.push(rowData);
}
return defaultData;
}
调用:
const processedData = {
factorProductionDefaultData: generateDefaultData(startYear, endYear, data.data, materialName, '生产排放因子(factor_production)'),
factorByYearDefaultData: generateDefaultData(startYear, endYear, data.data, materialName, '年度排放因子(factor_by_year)'),
factorTuiYiDefaultData: generateDefaultData(startYear, endYear, data.data, materialName, '退役排放因子(factor_tui_yi)'),
};