Skip to content
-
Node.js Buffer.subarray() Method
Last Updated :
28 Apr, 2025
The buffer.subarray() method is an inbuilt application programming interface of the buffer module which is used to crop a part of array i.e. create sub-array from an array.
Syntax:
Buffer.subarray( starting_index, ending_index )
Parameters: This method has two parameters as mentioned above and described below:
- starting_index: This parameter specifies an integer value that denotes the starting address of the buffer from where new buffer to start. Its default value is 0.
- ending_index: It specifies an integer value that denotes ending address of the buffer up to which the new buffer to be created. The default value is the length of the buffer.
Return Value: This method returns the cropped array. This buffer points to the same memory but with cropped starting and ending indices. If ending_index in the parameter is greater than buffer length then buffer length is taken as ending index.
Note: If the new buffer is modified then the same will be reflected in the original buffer as they point to the same memory.
Below examples illustrate the use of buffer.subarray() method in Node.js:
Example 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);
Output:
Original buffer is: GeeksforGeeks
Cropped buffer is: forGe
Cropped buffer after modification is: FORGe
Original buffer after modification is: GeeksFORGeeks
Example 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);
Output:
Original buffer is: GeeksforGeeks
Cropped buffer is:eeksforGeek
Cropped buffer is: ksfor
Cropped buffer is: GeeksforGeeks
Note: The above program will compile and run by using the node index.js command.
Reference: https://nodejs.org/api/buffer.html#buffer_buf_subarray_start_end
Similar Reads
Node.js Buffer.copy() Method Buffer is a temporary memory storage that stores the data when it is being moved from one place to another. It is like an array of integers. The Buffer.copy() method simply copies all the values from the input buffer to another buffer. Syntax:buffer.copy( target, targetStart, sourceStart, sourceEnd
2 min read
Node.js Buffer.includes() Method Buffer is a temporary memory storage which stores the data when it is being moved from one place to another. It is like an array of integers. The Buffer.includes() method checks whether the provided value is present or included in the buffer or not. Syntax:buffer.includes( value, byteOffset, encodin
2 min read
Node.js Buffer.compare() Method Buffer is a temporary memory storage that stores the data when it is being moved from one place to another. It is like an array of integers. Buffer.compare() method compares the two given buffers. Syntax: buffer1.compare( targetBuffer, targetStart, targetEnd, sourceStart, sourceEnd ) Parameters: Th
3 min read
Node.js Buffer.alloc() Method The Buffer.alloc() method is used to create a new buffer object of the specified size. This method is slower than Buffer.allocUnsafe() method but it assures that the newly created Buffer instances will never contain old information or data that is potentially sensitive. Syntax Buffer.alloc(size, fil
2 min read
Node.js Buffer.equals() Method The Buffer.equals() method is used to compare two buffer objects and returns True of both buffer objects are the same otherwise returns False. Syntax: buffer.equals( buf ) Parameters: This method accepts single parameter otherBuffer which holds the another buffer to compare with buffer object. Retur
1 min read
Node.js Buffer.subarray() Method The buffer.subarray() method is an inbuilt application programming interface of the buffer module which is used to crop a part of array i.e. create sub-array from an array.Syntax:Â Â Buffer.subarray( starting_index, ending_index ) Parameters: This method has two parameters as mentioned above and desc
3 min read
Node.js Buffer.readIntBE() Method The Buffer.readIntBE() method is used to read the number of bytes for a buffer at a given offset and interprets the result as a two's complement signed value. Syntax: buffer.readIntBE( offset, byteLen ) Parameters: This method accepts two parameters as mentioned above and described below: offset: It
2 min read
Node.js Buffer.write() Method The Buffer.write() method writes the specified string into a buffer, at the specified position. If buffer did not contain enough space to fit the entire string, only part of string will be written. However, partially encoded characters will not be written. Syntax: buffer.write( string, offset, lengt
2 min read
Node.js Buffer.readIntLE() Method The Buffer.readIntLE() method is used to read number of bytes from a buffer at a given offset and interprets the result as a two's complement signed value. Syntax: buffer.readIntLE( offset, byteLen ) Parameters: This method accepts two parameter as mentioned above and described below: offset: It spe
2 min read
Node.js Buffer.readUInt8() Method The Buffer.readUInt8() method is used to read an unsigned 8 bit integer from a Buffer object. Syntax: buffer.readUInt8( offset ) Parameters: This method accepts a single parameter offset which specifies the position of buffer object. It represents the number of bytes to skip before starting to read.
2 min read
`;
$(commentSectionTemplate).insertBefore(".article--recommended");
}
loadComments();
});
});
function loadComments() {
if ($("iframe[id*='discuss-iframe']").length top_of_element && top_of_screen articleRecommendedTop && top_of_screen articleRecommendedBottom)) {
if (!isfollowingApiCall) {
isfollowingApiCall = true;
setTimeout(function(){
if (loginData && loginData.isLoggedIn) {
if (loginData.userName !== $('#followAuthor').val()) {
is_following();
} else {
$('.profileCard-profile-picture').css('background-color', '#E7E7E7');
}
} else {
$('.follow-btn').removeClass('hideIt');
}
}, 3000);
}
}
});
}
$(".accordion-header").click(function() {
var arrowIcon = $(this).find('.bottom-arrow-icon');
arrowIcon.toggleClass('rotate180');
});
});
window.isReportArticle = false;
function report_article(){
if (!loginData || !loginData.isLoggedIn) {
const loginModalButton = $('.login-modal-btn')
if (loginModalButton.length) {
loginModalButton.click();
}
return;
}
if(!window.isReportArticle){
//to add loader
$('.report-loader').addClass('spinner');
jQuery('#report_modal_content').load(gfgSiteUrl+'wp-content/themes/iconic-one/report-modal.php', {
PRACTICE_API_URL: practiceAPIURL,
PRACTICE_URL:practiceURL
},function(responseTxt, statusTxt, xhr){
if(statusTxt == "error"){
alert("Error: " + xhr.status + ": " + xhr.statusText);
}
});
}else{
window.scrollTo({ top: 0, behavior: 'smooth' });
$("#report_modal_content").show();
}
}
function closeShareModal() {
const shareOption = document.querySelector('[data-gfg-action="share-article"]');
shareOption.classList.remove("hover_share_menu");
let shareModal = document.querySelector(".hover__share-modal-container");
shareModal && shareModal.remove();
}
function openShareModal() {
closeShareModal(); // Remove existing modal if any
let shareModal = document.querySelector(".three_dot_dropdown_share");
shareModal.appendChild(Object.assign(document.createElement("div"), { className: "hover__share-modal-container" }));
document.querySelector(".hover__share-modal-container").append(
Object.assign(document.createElement('div'), { className: "share__modal" }),
);
document.querySelector(".share__modal").append(Object.assign(document.createElement('h1'), { className: "share__modal-heading" }, { textContent: "Share to" }));
const socialOptions = ["LinkedIn", "WhatsApp","Twitter", "Copy Link"];
socialOptions.forEach((socialOption) => {
const socialContainer = Object.assign(document.createElement('div'), { className: "social__container" });
const icon = Object.assign(document.createElement("div"), { className: `share__icon share__${socialOption.split(" ").join("")}-icon` });
const socialText = Object.assign(document.createElement("span"), { className: "share__option-text" }, { textContent: `${socialOption}` });
const shareLink = (socialOption === "Copy Link") ?
Object.assign(document.createElement('div'), { role: "button", className: "link-container CopyLink" }) :
Object.assign(document.createElement('a'), { className: "link-container" });
if (socialOption === "LinkedIn") {
shareLink.setAttribute('href', `https://www.linkedin.com/sharing/share-offsite/?url=${window.location.href}`);
shareLink.setAttribute('target', '_blank');
}
if (socialOption === "WhatsApp") {
shareLink.setAttribute('href', `https://api.whatsapp.com/send?text=${window.location.href}`);
shareLink.setAttribute('target', "_blank");
}
if (socialOption === "Twitter") {
shareLink.setAttribute('href', `https://twitter.com/intent/tweet?url=${window.location.href}`);
shareLink.setAttribute('target', "_blank");
}
shareLink.append(icon, socialText);
socialContainer.append(shareLink);
document.querySelector(".share__modal").appendChild(socialContainer);
//adding copy url functionality
if(socialOption === "Copy Link") {
shareLink.addEventListener("click", function() {
var tempInput = document.createElement("input");
tempInput.value = window.location.href;
document.body.appendChild(tempInput);
tempInput.select();
tempInput.setSelectionRange(0, 99999); // For mobile devices
document.execCommand('copy');
document.body.removeChild(tempInput);
this.querySelector(".share__option-text").textContent = "Copied"
})
}
});
// document.querySelector(".hover__share-modal-container").addEventListener("mouseover", () => document.querySelector('[data-gfg-action="share-article"]').classList.add("hover_share_menu"));
}
function toggleLikeElementVisibility(selector, show) {
document.querySelector(`.${selector}`).style.display = show ? "block" : "none";
}
function closeKebabMenu(){
document.getElementById("myDropdown").classList.toggle("show");
}