Liu Song’s Projects


~/Projects/sing

git clone https://code.lsong.org/sing

Commit

Commit
2469ae4c9ac80a399ec46a0cc633e94e3527e8a3
Author
世界 <[email protected]>
Date
2022-07-29 19:48:34 +0800 +0800
Diffstat
 common/cond.go | 16 ++++++++++++++++

Add flatMap


diff --git a/common/cond.go b/common/cond.go
index bf59929fff497af1eee0549cee6b922ddc480e05..78cd0cee43357ef5dfc912a1a25e8daab4027dfc 100644
--- a/common/cond.go
+++ b/common/cond.go
@@ -71,6 +71,22 @@ 	}
 	return retArr
 }
 
+func FlatMap[T any, N any](arr []T, block func(it T) []N) []N {
+	var retAddr []N
+	for _, item := range arr {
+		retAddr = append(retAddr, block(item)...)
+	}
+	return retAddr
+}
+
+func FlatMapIndexed[T any, N any](arr []T, block func(index int, it T) []N) []N {
+	var retAddr []N
+	for i, item := range arr {
+		retAddr = append(retAddr, block(i, item)...)
+	}
+	return retAddr
+}
+
 func Filter[T any](arr []T, block func(it T) bool) []T {
 	var retArr []T
 	for _, it := range arr {