El método buffer.subarray() es una interfaz de programación de aplicaciones incorporada del módulo de búfer que se utiliza para recortar una parte de la array, es decir, crear una sub-array a partir de una array.
Sintaxis:
Buffer.subarray( starting_index, ending_index )
Parámetros: este método tiene dos parámetros, como se mencionó anteriormente y se describe a continuación:
- índice_inicial: este parámetro especifica un valor entero que denota la dirección inicial del búfer desde donde se iniciará el nuevo búfer. Su valor por defecto es 0.
- ending_index: especifica un valor entero que denota la dirección final del búfer hasta el cual se creará el nuevo búfer. El valor predeterminado es la longitud del búfer.
Valor devuelto: este método devuelve la array recortada. Este búfer apunta a la misma memoria pero con índices iniciales y finales recortados. Si el índice_finalización del parámetro es mayor que la longitud del búfer, la longitud del búfer se toma como índice final.
Nota: Si se modifica el nuevo búfer, lo mismo se reflejará en el búfer original, ya que apuntan a la misma memoria.
Los siguientes ejemplos ilustran el uso del método buffer.subarray() en Node.js:
Ejemplo 1:
javascript
// Node.js program to demonstrate the // Buffer.subarray() method // Allocating buffer const buf = Buffer.from('GeeksforGeeks', 'ascii'); // Printing original buffer console.log("Original buffer is: " + buf); // Cropping buffer, here starting index // is 5 and ending index is 10 cropped_buf = buf.subarray(5, 10); // Printing cropped buffer console.log("Cropped buffer is: " + cropped_buf); // Modifying cropped buffer cropped_buf[0] = 70; // F cropped_buf[1] = 79; // O cropped_buf[2] = 82; // R // Printing cropped buffer console.log("Cropped buffer after modification is: " + cropped_buf); // Printing original buffer console.log("Original buffer after modification is: " + buf);
Producción:
Original buffer is: GeeksforGeeks Cropped buffer is: forGe Cropped buffer after modification is: FORGe Original buffer after modification is: GeeksFORGeeks
Ejemplo 2:
javascript
// Node.js program to demonstrate the // Buffer.subarray() method // Allocating buffer const buf = Buffer.from('GeeksforGeeks', 'ascii'); // Printing original buffer console.log("Original buffer is: " + buf); // Cropping buffer, here starting index // is -10 and ending index is -1 cropped_buf = buf.subarray(-12, -1); // Printing cropped buffer console.log("Cropped buffer is:" + cropped_buf); // Cropping buffer again, here starting // index is -10 and ending index is -5 cropped_buf = buf.subarray(-10, -5); // Printing cropped buffer console.log("Cropped buffer is: " + cropped_buf); // Cropping buffer again with no parameter cropped_buf = buf.subarray(); // Printing cropped buffer console.log("Cropped buffer is: " + cropped_buf);
Producción:
Original buffer is: GeeksforGeeks Cropped buffer is:eeksforGeek Cropped buffer is: ksfor Cropped buffer is: GeeksforGeeks
Nota: El programa anterior se compilará y ejecutará mediante el comando node index.js.
Referencia: https://nodejs.org/api/buffer.html#buffer_buf_subarray_start_end