partitionEntries

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

function

function partitionEntries<T>(record: Readonly<Record<string, T>>, predicate: (entry: [string, T]) => boolean): [Record<string, T>, Record<string, T>]

Returns a tuple of two records with the first one containing all entries of the given record that match the given predicate and the second one containing all that do not.

record: Readonly<Record<string, T>>

The record to partition.

predicate: (entry: [string, T]) => boolean

The predicate function to determine which entries go where.

Returns

A tuple containing two records, the first one containing all entries that match the predicate and the second one containing all that do not.

Example: Basic usage

import { partitionEntries } from "@ende/collections/partition-entries";
import { assertEquals } from "@ende/assert";

const menu = {
  Salad: 11,
  Soup: 8,
  Pasta: 13,
};
const myOptions = partitionEntries(
  menu,
  ([item, price]) => item !== "Pasta" && price < 10,
);

assertEquals(
  myOptions,
  [
    { Soup: 8 },
    { Salad: 11, Pasta: 13 },
  ],
);

Source