For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt, and this page is available as Markdown at /reference/fp/unionWith.md.

unionWith (Functional Programming) es-toolkit

Creates a function that combines arrays using a custom equality function. Use it with pipe.

const result = pipe(array, unionWith(secondArray, areItemsEqual));
Info

Prefer the original es-toolkit unionWith in ordinary code. Use this fp variant when composing transformations with pipe.

Usage

unionWith keeps the first value from the combined arrays for which areItemsEqual does not match an already kept value.

import { pipe, unionWith } from 'es-toolkit/fp';

pipe(
  [{ id: 1 }, { id: 2 }],
  unionWith([{ id: 2 }, { id: 3 }], (a, b) => a.id === b.id)
); // => [{ id: 1 }, { id: 2 }, { id: 3 }]

Parameters

secondArrayreadonly T[]required

The array to combine after the piped array.

areItemsEqual(item: T, other: T) => booleanrequired

The function that decides whether two values are equal.

Returns

A function that maps a readonly T[] to a union by custom equality.

(array: readonly T[]) => T[]
Source: es-toolkit

Re-exported verbatim from es-toolkit. Implementation, edge cases, and performance behavior are owned upstream. This page mirrors the documentation at the pinned version; the linked source is authoritative.