Tengo una matriz con varios elementos, esta matriz lleva dentro la información de un búfer que pinta la información de un pdf. Imagine que dentro de la matriz hay diez archivos pdf algo como esto:
[{ correlative: "G-22-1-06", content: <Buffer 25 50 44 46 2d 31 2e 34 0a 25 d3 eb e9 e1 0a 31 20 30 20 6f 62 6a 0a 3c 3c 2f 43 72 65 61 74 6f 72 20 28 43 68 72 6f 72 6d 7 6d 6 509 64 ... 277154 more bytes>, name_Patient: "NamePatient" }, { correlative: "G-22-1-07", content: <Buffer 25 50 44 46 2d 31 2e 34 0a 25 d3 eb e9 e1 0a 31 20 30 20 6f 62 6a 0a 3c 3c 2f 43 72 65 61 74 6f 72 20 28 43 68 72 6f 72 6d 7 6d 6 509 64 ... 275969 more bytes>, name_Patient: "NamePatient" } ]Y si la matriz supera un límite en MB esa matriz se divide, digamos que dentro de la matriz hay 20 archivos pdf, pero como acceden al límite de MB se dividen dos a dos (es un ejemplo) cómo podría Obtengo las veces que se dividió ? Esa es la cantidad de veces que se tuvo que dividir para completar los 20 archivos.
// Get the total in MB of the files in the array const totalSize: number = this.getSizeFromAttachments(attachments); //Divide the MB limit by a set total limit const chunkSplit = Math.floor(isNaN(totalSize) ? 1 : totalSize / this.LIMIT_ATTACHMENTS) + 1; //Split the matrix if it is greater than the established limit const attachmentsChunk: any[][] = _.chunk(attachments, chunkSplit); // accessing the split matrix info attachmentsChunk?.map(async (attachment: EmailAttachment[], index) => { //more action }Supongamos que el límite de archivos es de 5 MB
const FILE_LIMIT = 5;y el tamaño del archivo es 26 por ejemplo. por lo que se debe dividir 6 veces
[5, 5, 5, 5, 5, 1] tamaños exactos de partes divididas
const fileSize = 26;puede crear esta función que calcula el número de partes divididas
function calculateNumberOfSplits(fileSize:number, maxSize:number):number{ return Math.ceil(fileSize/ maxSize); }vamos a probarlo
function calculateNumberOfSplits(fileSize, maxSize){ return Math.ceil(fileSize/ maxSize); } let fileSize = 26; let maxSize = 5; let numOfSplits = calculateNumberOfSplits(fileSize, maxSize); console.log(numOfSplits)y el fragmento da como resultado 6, que es correcto