indexOfNeedle
import { indexOfNeedle } from "jsr:@ende/bytes";function
function indexOfNeedle(source: Uint8Array, needle: Uint8Array, start: number = 0): numberReturns the index of the first occurrence of the needle array in the source array, or -1 if it is not present.
A start index can be specified as the third argument that begins the search at that given index. The start index defaults to the start of the array.
The complexity of this function is O(source.length * needle.length).
source: Uint8ArraySource array to check.
needle: Uint8ArrayNeedle array to check for.
start: number = 0Start index in the source array to begin the search. Defaults to 0.
Returns
Index of the first occurrence of the needle array in the source array, or -1 if it is not present.
Example: Basic usage
import { indexOfNeedle } from "@ende/bytes/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(indexOfNeedle(source, needle), 1);
assertEquals(indexOfNeedle(source, notNeedle), -1);
Example: Start index
import { indexOfNeedle } from "@ende/bytes/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(indexOfNeedle(source, needle, 2), 3);
assertEquals(indexOfNeedle(source, needle, 6), -1);
Defining a start index will begin the search at the specified index in the source array.