Obtenga el índice actual de un bucle forEach en Kotlin

Kailash Vaviya 15 febrero 2024
  1. Obtenga el índice actual de un elemento en un bucle forEach usando forEachIndexed() en Kotlin
  2. Obtenga el índice actual de un elemento en un bucle forEach usando withIndex() en Kotlin
  3. Obtenga el índice actual de un elemento en un bucle forEach usando Índices en Kotlin
  4. Obtenga el índice de un elemento de matriz usando filterIndexed() en Kotlin
Obtenga el índice actual de un bucle forEach en Kotlin

Conocer el índice actual de un elemento en un bucle forEach puede ayudarlo a encontrar la posición del elemento que está encontrando. Este artículo analizará diferentes formas de encontrar el índice actual de un bucle forEach.

Hay tres formas diferentes de conseguir lo que queremos, que son:

  1. Usando forEachIndexed()
  2. Usando withIndex()
  3. Uso de índices

Obtenga el índice actual de un elemento en un bucle forEach usando forEachIndexed() en Kotlin

Podemos usar la función forEachIndexed() para recuperar el índice actual. Es una función en línea que acepta una matriz como entrada.

El forEachIndexed() genera los elementos del índice y sus valores.

La sintaxis para usar la función forEachIndexed() es la siguiente.

collection.forEachIndexed { index, element ->
    // ...
}

Pongamos un ejemplo para entender cómo funciona. Crearemos una matriz Estudiante y la atravesaremos usando forEachIndexed() para obtener los índices y valores como salida en el siguiente ejemplo.

fun main() {
    var Student = listOf("Virat", "David", "Steve", "Joe", "Chris")

    Student.forEachIndexed {index, element ->
        println("The index is $index and the item is $element ")
    }
}

Producción:

Usando forEachIndexed para obtener el índice actual en Kotlin

Obtenga el índice actual de un elemento en un bucle forEach usando withIndex() en Kotlin

Además de forEachIndexed(), también podemos usar la función withIndex() para obtener el índice actual de un elemento en un bucle forEach en Kotlin.

Es una función de biblioteca que permite acceder a índices y valores a través de un bucle.

Usaremos a utilizar el mismo array, pero esta vez con la función withIndex() para acceder a los índices y valores del array Student.

fun main() {
    var Student = listOf("Virat", "David", "Steve", "Joe", "Chris")

    for ((index, element) in Student.withIndex()) {
        println("The index is $index and the item is $element ")
    }
}

Producción:

Usando withIndex para obtener el índice actual en Kotlin

Obtenga el índice actual de un elemento en un bucle forEach usando Índices en Kotlin

También podemos usar la palabra clave índices para obtener el índice actual. La sintaxis para usar índices es la siguiente.

for (i in array.indices) {
    print(array[i])
}

Usemos esta sintaxis en nuestra matriz Estudiante para acceder al índice y los valores.

fun main(args : Array<String>){

    val Student = arrayOf("Virat", "David", "Steve", "Joe", "Chris")
    for (i in Student.indices){
        println("Student[$i]: ${Student[i]}")
    }
}

Producción:

Uso de índices para obtener el índice actual en Kotlin

Obtenga el índice de un elemento de matriz usando filterIndexed() en Kotlin

Podemos obtener el índice actual usando las funciones anteriores. Pero qué pasa si queremos acceder solo a índices específicos y no a todos.

Podemos hacerlo usando la función filterIndexed().

La función filterIndexed() acepta una condición como argumento. Según la condición que pasemos, la función puede filtrar la salida para mostrar los índices requeridos.

Usemos la función filterIndexed() para acceder solo a los valores en los índices pares del array Estudiante.

fun main(args : Array<String>){

    val Student = arrayOf("Virat", "David", "Steve", "Joe", "Chris")
        .filterIndexed { index, _ ->  index % 2 == 0 }
        .forEach { println(it) }
}

Producción:

Uso de filterIndexed para obtener el valor de un índice específico en Kotlin

Kailash Vaviya avatar Kailash Vaviya avatar

Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.

LinkedIn

Artículo relacionado - Kotlin Loop