API reference › @evolu/common › Array › dedupeArray
Call Signature
function dedupeArray<T>(
array: readonly [T, T],
by?: (item: T) => unknown,
): readonly [T, T];
Defined in: packages/common/src/Array.ts:691
Returns a new readonly array with duplicate items removed. Items are compared
using Set equality (SameValueZero): primitives by value, and objects and
arrays by reference. If by is provided, it derives the comparison key.
Preserves non-empty type.
Deduplicating by value or key
import {
assertEqual,
assertType,
dedupeArray,
type NonEmptyReadonlyArray,
} from "@evolu/common";
const numbers = dedupeArray([1, 2, 1, 3, 2]);
const people = dedupeArray(
[
{ id: 1, name: "Alice" },
{ id: 2, name: "Bob" },
{ id: 1, name: "Alice 2" },
],
(item) => item.id,
);
assertType<NonEmptyReadonlyArray<number>, typeof numbers>();
assertEqual(numbers, [1, 2, 3]);
assertEqual(people, [
{ id: 1, name: "Alice" },
{ id: 2, name: "Bob" },
]);
Call Signature
function dedupeArray<T>(
array: readonly T[],
by?: (item: T) => unknown,
): readonly T[];
Defined in: packages/common/src/Array.ts:696
Possibly empty array.