diff --git a/goextVersion.go b/goextVersion.go index 0816697..d3baf79 100644 --- a/goextVersion.go +++ b/goextVersion.go @@ -1,5 +1,5 @@ package goext -const GoextVersion = "0.0.455" +const GoextVersion = "0.0.456" -const GoextVersionTimestamp = "2024-05-16T15:38:42+0200" +const GoextVersionTimestamp = "2024-05-18T23:38:47+0200" diff --git a/langext/array.go b/langext/array.go index 4a63001..8963655 100644 --- a/langext/array.go +++ b/langext/array.go @@ -59,6 +59,18 @@ func ArrUnique[T comparable](array []T) []T { return result } +func ArrUniqueStable[T comparable](array []T) []T { + hist := make(map[T]bool, len(array)) + result := make([]T, 0, len(array)) + for _, v := range array { + if _, ok := hist[v]; !ok { + hist[v] = true + result = append(result, v) + } + } + return result +} + func ArrEqualsExact[T comparable](arr1 []T, arr2 []T) bool { if len(arr1) != len(arr2) { return false