underscore/flatmap.go
Ruidy 4042208482
add flatmap (#31)
* add flatmap

Signed-off-by: Ruidy <ruidy.nemausat@gmail.com>

* add to readme

Signed-off-by: Ruidy <ruidy.nemausat@gmail.com>

Signed-off-by: Ruidy <ruidy.nemausat@gmail.com>
Co-authored-by: Ruidy <ruidy.nemausat@gmail.com>
2022-08-10 17:01:43 +02:00

11 lines
375 B
Go

package underscore
// Flatmap flatten the input slice element into the new slice. FlatMap maps every element with the help of a mapper function, then flattens the input slice element into the new slice.
func Flatmap[T any](values []T, mapper func(n T) []T) []T {
res := make([]T, 0)
for _, v := range values {
vs := mapper(v)
res = append(res, vs...)
}
return res
}