diff --git a/langext/array.go b/langext/array.go index 3caf34a..3a28739 100644 --- a/langext/array.go +++ b/langext/array.go @@ -265,6 +265,16 @@ func ArrMap[T1 any, T2 any](arr []T1, conv func(v T1) T2) []T2 { return r } +func ArrFilterMap[T1 any, T2 any](arr []T1, filter func(v T1) bool, conv func(v T1) T2) []T2 { + r := make([]T2, 0, len(arr)) + for _, v := range arr { + if filter(v) { + r = append(r, conv(v)) + } + } + return r +} + func ArrSum[T NumberConstraint](arr []T) T { var r T = 0 for _, v := range arr {