buf.subarray([start[, end]])
添加於:v3.0.0
參數
start<integer> 新的Buffer將從哪裏開始。 默認:0。end<integer> 新的Buffer將在哪裏結束(不包括在內)。 默認:。buf.length- 返回: <Buffer>
 
返回一個新的 Buffer,它引用與原始內存相同的內存,但被 start 和 end 索引偏移和裁剪。
指定 end 大於   將返回與 buf.length end 等於   相同的結果。buf.length 
此方法繼承自   。TypedArray.prototype.subarray() 
修改新的Buffer slice 會修改原來Buffer 中的內存,因為兩個對象分配的內存重疊。
import { Buffer } from 'node:buffer'; // Create a `Buffer` with the ASCII alphabet, take a slice, and modify one byte // from the original `Buffer`. const buf1 = Buffer.allocUnsafe(26); for (let i = 0; i < 26; i++) { // 97 is the decimal ASCII value for 'a'. buf1[i] = i + 97; } const buf2 = buf1.subarray(0, 3); console.log(buf2.toString('ascii', 0, buf2.length)); // Prints: abc buf1[0] = 33; console.log(buf2.toString('ascii', 0, buf2.length)); // Prints: !bcconst { Buffer } = require('node:buffer'); // Create a `Buffer` with the ASCII alphabet, take a slice, and modify one byte // from the original `Buffer`. const buf1 = Buffer.allocUnsafe(26); for (let i = 0; i < 26; i++) { // 97 is the decimal ASCII value for 'a'. buf1[i] = i + 97; } const buf2 = buf1.subarray(0, 3); console.log(buf2.toString('ascii', 0, buf2.length)); // Prints: abc buf1[0] = 33; console.log(buf2.toString('ascii', 0, buf2.length)); // Prints: !bc
指定負索引會導致相對於buf 的結尾而不是開頭生成切片。
import { Buffer } from 'node:buffer'; const buf = Buffer.from('buffer'); console.log(buf.subarray(-6, -1).toString()); // Prints: buffe // (Equivalent to buf.subarray(0, 5).) console.log(buf.subarray(-6, -2).toString()); // Prints: buff // (Equivalent to buf.subarray(0, 4).) console.log(buf.subarray(-5, -2).toString()); // Prints: uff // (Equivalent to buf.subarray(1, 4).)const { Buffer } = require('node:buffer'); const buf = Buffer.from('buffer'); console.log(buf.subarray(-6, -1).toString()); // Prints: buffe // (Equivalent to buf.subarray(0, 5).) console.log(buf.subarray(-6, -2).toString()); // Prints: buff // (Equivalent to buf.subarray(0, 4).) console.log(buf.subarray(-5, -2).toString()); // Prints: uff // (Equivalent to buf.subarray(1, 4).)
相關用法
- Node.js Buffer buf.swap32()用法及代碼示例
 - Node.js Buffer buf.swap64()用法及代碼示例
 - Node.js Buffer buf.swap16()用法及代碼示例
 - Node.js Buffer buf.slice([start[, end]])用法及代碼示例
 - Node.js Buffer buf.writeBigUInt64BE(value[, offset])用法及代碼示例
 - Node.js Buffer buf.toString([encoding[, start[, end]]])用法及代碼示例
 - Node.js Buffer buf.writeDoubleLE(value[, offset])用法及代碼示例
 - Node.js Buffer buf.writeBigInt64LE(value[, offset])用法及代碼示例
 - Node.js Buffer buf.keys()用法及代碼示例
 - Node.js Buffer buf.writeFloatLE(value[, offset])用法及代碼示例
 - Node.js Buffer buf.indexOf(value[, byteOffset][, encoding])用法及代碼示例
 - Node.js Buffer buf.readFloatLE([offset])用法及代碼示例
 - Node.js Buffer buf.readInt32LE([offset])用法及代碼示例
 - Node.js Buffer buf.writeInt8(value[, offset])用法及代碼示例
 - Node.js Buffer buf.writeInt32LE(value[, offset])用法及代碼示例
 - Node.js Buffer buf.writeIntLE(value, offset, byteLength)用法及代碼示例
 - Node.js Buffer buf.values()用法及代碼示例
 - Node.js Buffer buf.writeDoubleBE(value[, offset])用法及代碼示例
 - Node.js Buffer buf.length用法及代碼示例
 - Node.js Buffer buf.byteOffset用法及代碼示例
 - Node.js Buffer buf.readUInt32BE([offset])用法及代碼示例
 - Node.js Buffer buf.readDoubleLE([offset])用法及代碼示例
 - Node.js Buffer buf.writeFloatBE(value[, offset])用法及代碼示例
 - Node.js Buffer buf.readBigUInt64LE([offset])用法及代碼示例
 - Node.js Buffer buf.readUInt16BE([offset])用法及代碼示例
 
注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 buf.subarray([start[, end]])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
