Из документации узла: https://nodejs.org/api/buffer.html#buffer_buf_lastindexof_value_byteoffset_encoding
const buf = Buffer.from('this buffer is a buffer');
console.log(buf.lastIndexOf('buffer'));
// Prints: 17
Это имеет смысл для меня, однако это не так:
console.log(buf.lastIndexOf('buffer', 5));
// Prints: 5
console.log(buf.lastIndexOf('buffer', 4));
// Prints: -1
Почему индекс ('buffer', 5)
не быть 17? Почему индекс ('buffer', 4)
-1 вместо 17?
Узел do c говорит:
- byteOffset: с чего начать поиск в
buf
. Если отрицательный, то смещение рассчитывается от конца буфера. По умолчанию: buf.length - 1.
Значение по умолчанию buf.length - 1
подразумевает, что он выполняет поиск в буфере в обратном направлении, что объясняет lastIndexOf('buffer', 5) = 5
, но не объясняет lastIndexOf('buffer', 4) = -1
.