Files
base/pkg/array/aggregate.go
2026-04-10 18:25:21 +03:30

27 lines
458 B
Go

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
}