Skip to content

unique

Edit

Removes duplicate values while preserving their first-seen order.

unique.ts
/** Removes duplicate values while preserving their first-seen order. */
export const unique = <const T>(array: readonly T[]): T[] => {
const seen = new Set<T>();
const result: T[] = [];
for (let index = 0; index < array.length; index += 1) {
if (!Object.hasOwn(array, index)) continue;
const value = array[index] as T;
if (seen.has(value)) continue;
seen.add(value);
result.push(value);
}
return result;
};
Terminal
wget -O src/lib/unique.ts https://raw.githubusercontent.com/jrTilak/lazykit/HEAD/registry/functions/unique.ts
unique.example.ts
import { unique } from "./unique";
const arr = [1, 2, 3, 3];
const result = unique(arr);
console.log(result);
// Expected Output: [1, 2, 3]
  • array (readonly T[]) — Values to deduplicate using Set equality semantics. Empty slots are skipped.

T[] — A new array containing the first occurrence of each value.