flatMapIndexed

@JvmName(name = "flatMapIndexedIterable")
fun <T, R> Sequence<T>.flatMapIndexed(transform: (index: Int, T) -> Iterable<R>): Sequence<R>(source)
@JvmName(name = "flatMapIndexedSequence")
fun <T, R> Sequence<T>.flatMapIndexed(transform: (index: Int, T) -> Sequence<R>): Sequence<R>(source)

Returns a single sequence of all elements yielded from results of transform function being invoked on each element and its index in the original sequence.

The operation is intermediate and stateless.

Since Kotlin

1.4

Samples

import kotlin.test.*

fun main() { 
   //sampleStart 
   val data: List<String> = listOf("Abcd", "efgh", "Klmn")
val selected: List<Boolean> = data.map { it.any { c -> c.isUpperCase() } }
val result = data.flatMapIndexed { index, s -> if (selected[index]) s.toList() else emptyList() }
println(result) // [A, b, c, d, K, l, m, n] 
   //sampleEnd
}