From 57827bc915773e840be09ac3a035065ccdb8b43f Mon Sep 17 00:00:00 2001 From: Rory& Date: Mon, 16 Mar 2026 23:46:38 +0100 Subject: [PATCH] Array method to get distinct items by a selector --- src/util/util/extensions/Array.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/util/util/extensions/Array.ts b/src/util/util/extensions/Array.ts index f9cb2fc57..bb5f3362a 100644 --- a/src/util/util/extensions/Array.ts +++ b/src/util/util/extensions/Array.ts @@ -30,3 +30,15 @@ export function arrayRemove(array: T[], item: T): void { array.splice(index, 1); } } + +export function arrayDistinctBy(array: T[], selector: (elem: T) => M): T[] { + const mapped = new Set(); + + return array.filter((item) => { + const mappedValue = selector(item); + if (mapped.has(mappedValue)) return false; + + mapped.add(mappedValue); + return true; + }); +}