lastIndexOfNeedle
import { lastIndexOfNeedle } from "jsr:@ende/bytes";function
function lastIndexOfNeedle(source: Uint8Array, needle: Uint8Array, start: number = [UNSUPPORTED]): numberReturns the index of the last occurrence of the needle array in the source array, or -1 if it is not present.
The complexity of this function is O(source.length * needle.length).
source: Uint8ArraySource array to check.
needle: Uint8ArrayNeedle array to check for.
start: number = [UNSUPPORTED]Start index in the source array to begin the search. Defaults to
source.length - 1.
Returns
Index of the last occurrence of the needle array in the source array, or -1 if it is not present.
Example: Basic usage
import { lastIndexOfNeedle } from "@ende/bytes/last-index-of-needle";
import { assertEquals } from "@ende/assert";
const source = new Uint8Array([0, 1, 2, 1, 2, 1, 2, 3]);
const needle = new Uint8Array([1, 2]);
const notNeedle = new Uint8Array([5, 0]);
assertEquals(lastIndexOfNeedle(source, needle), 5);
assertEquals(lastIndexOfNeedle(source, notNeedle), -1);
Example: Start index
import { lastIndexOfNeedle } from "@ende/bytes/last-index-of-needle";
import { assertEquals } from "@ende/assert";
const source = new Uint8Array([0, 1, 2, 1, 2, 1, 2, 3]);
const needle = new Uint8Array([1, 2]);
assertEquals(lastIndexOfNeedle(source, needle, 2), 1);
assertEquals(lastIndexOfNeedle(source, needle, 6), 5);
Defining a start index will begin the search at the specified index in the source array.