initial commit
This commit is contained in:
26
pkg/array/aggregate.go
Normal file
26
pkg/array/aggregate.go
Normal file
@@ -0,0 +1,26 @@
|
||||
package array
|
||||
|
||||
func Chunk[T interface{}](arr []T, chunkSize int) [][]T {
|
||||
var chunkedArray [][]T
|
||||
|
||||
for i := 0; i < len(arr); i += chunkSize {
|
||||
end := i + chunkSize
|
||||
|
||||
if end > len(arr) {
|
||||
end = len(arr)
|
||||
}
|
||||
|
||||
chunkedArray = append(chunkedArray, arr[i:end])
|
||||
}
|
||||
|
||||
return chunkedArray
|
||||
}
|
||||
|
||||
func Sum[T any, N Numbers](arr []T, selector func(val T) N) N {
|
||||
var summed N
|
||||
for i := 0; i < len(arr); i++ {
|
||||
r := selector(arr[i])
|
||||
summed += r
|
||||
}
|
||||
return summed
|
||||
}
|
||||
Reference in New Issue
Block a user