core/generics/map.go

23 lines
509 B
Go
Raw Normal View History

2024-01-01 16:55:54 +00:00
package generics
// FlattenMap takes a map and flattens it to an array
func FlattenMap[K comparable, V any](m map[K]V) []V {
slice := make([]V, 0, len(m))
for k := range m {
slice = append(slice, m[k])
}
return slice
}
// FlattenMapOrdered takes a map content in a specific order
func FlattenMapOrdered[K comparable, V any](m map[K]V, orderBy []K) []V {
slice := make([]V, 0, len(orderBy))
for _, key := range orderBy {
if v, ok := m[key]; ok {
slice = append(slice, v)
}
}
return slice
}