Files
lo/docs/data/it-intersectby.md
T
Samuel Berthe d99edab80d Refactoring lo.IntersectBy + adding loit.IntersectBy + adding doc (#739)
* feat(intersectby): form transform callback in first position and add support for vaarg

* feat(it): adding loit.IntersectBy

* doc: adding lo.IntersectBy + loit.IntersectBy

* doc: adding lo.IntersectBy + loit.IntersectBy

* style: fix linter

* doc: adding example for lo.IntersectBy
2025-11-07 01:23:34 +01:00

1.0 KiB

name, slug, sourceRef, category, subCategory, signatures, playUrl, variantHelpers, similarHelpers, position
name slug sourceRef category subCategory signatures playUrl variantHelpers similarHelpers position
IntersectBy intersectby it/intersect.go#L78 it intersect
func IntersectBy[T any, K comparable, I ~func(func(T) bool)](func(T) K, lists ...I) I
it#intersect#intersectby
it#intersect#intersect
core#slice#intersect
core#slice#intersectby
it#intersect#union
10

Returns the intersection between given collections using a custom key selector function.

Examples:

seq1 := func(yield func(int) bool) {
    _ = yield(1)
    _ = yield(2)
    _ = yield(3)
    _ = yield(4)
}
seq2 := func(yield func(int) bool) {
    _ = yield(2)
    _ = yield(3)
    _ = yield(5)
}
seq3 := func(yield func(int) bool) {
    _ = yield(3)
    _ = yield(2)
    _ = yield(6)
}

transform := func(v int) string {
  return strconv.Itoa(v)
}

intersection := it.IntersectBy(transform, seq1, seq2, seq3)

var result []int
for v := range intersection {
    result = append(result, v)
}
// result contains 2, 3 (elements present in all sequences)