takeWhile

import { takeWhile } from "jsr:@ende/collections";

function

function takeWhile<T>(iterable: Iterable<T>, predicate: (el: T, index: number) => boolean): T[]

Returns all elements in the given collection until the first element that does not match the given predicate.

iterable: Iterable<T>

The iterable to take elements from.

predicate: (el: T, index: number) => boolean

The predicate function to determine if an element should be included. The function receives the element and its index.

Returns

An array containing all elements until the first element that does not match the predicate.

Example: Basic usage

import { takeWhile } from "@ende/collections/take-while";
import { assertEquals } from "@ende/assert";

const numbers = [1, 2, 3, 4, 5, 6];

const result = takeWhile(numbers, (number) => number < 4);

assertEquals(result, [1, 2, 3]);

Example: Using the index parameter

import { takeWhile } from "@ende/collections/take-while";
import { assertEquals } from "@ende/assert";

const array = [20, 30, 20];
const result = takeWhile(array, (_, index) => index < 2);

assertEquals(result, [20, 30]);

Source