根据每一列写一个函数来处理每一个参数:

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)'),
};