lastIndexOfNeedle

import { lastIndexOfNeedle } from "jsr:@ende/bytes";

function

function lastIndexOfNeedle(source: Uint8Array, needle: Uint8Array, start: number = [UNSUPPORTED]): number

Returns 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: Uint8Array

Source array to check.

needle: Uint8Array

Needle 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.

Source