Estoy extrayendo datos de un archivo csv en una matriz. Estoy usando el enfoque Streams para extraer los datos del CSV en la matriz. Una vez que se han extraído estos datos, necesito procesarlos utilizando el método de reducción. Aquí es donde comienza el problema. Me encuentro con un montón de JavaScript sin memoria Error.
He logrado extraer datos sin este error. ¿Cómo puedo procesar esta gran cantidad de datos de una mejor manera para evitar este error?
Aquí está mi código
inputStream.pipe(new CsvReadableStream({ parseNumbers: true, parseBooleans: true, trim: true })) .on('data', (row) => { csvData.push(row); }) .on('end', function() { groupedResult = csvData.reduce((acc, curr) => { //<- How can i Process this large data in a better way? if (!acc[curr[2]]) { acc[curr[2]] = []; } acc[curr[2]].push(curr); return acc; }, []); for (let groupName in groupedResult) { //<- How can i Process this large data in a better way? const accumulated = groupedResult[groupName].reduce((acc, curr) => { acc[curr[1]] += curr[3]; return acc; // ← return the accumulator to use for the next round }, { DEPOSIT: 0, WITHDRAWAL: 0 }) groupedBalance[groupName] = { Balance: accumulated['DEPOSIT'] - accumulated['WITHDRAWAL'] }; } for (let Gname in groupedBalance) { axios.get('https://min-api.cryptocompare.com/data/price?fsym=' + Gname + '&tsyms=USD&api_key=a437b4c23456') .then(response => { groupedApiResult[Gname] = { LastestBalance: ((groupedBalance[Gname].Balance * response.data.USD)) }; console.log(groupedApiResult); }) .catch(error => { console.log(error); }); } });