filterIndexed

inline fun <T> Array<out T>.filterIndexed(predicate: (index: Int, T) -> Boolean): List<T>(source)
inline fun ByteArray.filterIndexed(predicate: (index: Int, Byte) -> Boolean): List<Byte>(source)
inline fun ShortArray.filterIndexed(predicate: (index: Int, Short) -> Boolean): List<Short>(source)
inline fun IntArray.filterIndexed(predicate: (index: Int, Int) -> Boolean): List<Int>(source)
inline fun LongArray.filterIndexed(predicate: (index: Int, Long) -> Boolean): List<Long>(source)
inline fun FloatArray.filterIndexed(predicate: (index: Int, Float) -> Boolean): List<Float>(source)
inline fun DoubleArray.filterIndexed(predicate: (index: Int, Double) -> Boolean): List<Double>(source)
inline fun BooleanArray.filterIndexed(predicate: (index: Int, Boolean) -> Boolean): List<Boolean>(source)
inline fun CharArray.filterIndexed(predicate: (index: Int, Char) -> Boolean): List<Char>(source)
inline fun <T> Iterable<T>.filterIndexed(predicate: (index: Int, T) -> Boolean): List<T>(source)

Returns a list containing only elements matching the given predicate.

Since Kotlin

1.0

Parameters

predicate

function that takes the index of an element and the element itself and returns the result of predicate evaluation on the element.

Samples

import kotlin.test.*

fun main() { 
   //sampleStart 
   val numbers: List<Int> = listOf(0, 1, 2, 3, 4, 8, 6)
val numbersOnSameIndexAsValue = numbers.filterIndexed { index, i -> index == i }

println(numbersOnSameIndexAsValue) // [0, 1, 2, 3, 4, 6] 
   //sampleEnd
}