Cómo obtener el índice de un elemento de un array en JavaScript

Javascript

En este tutorial vamos a ver cómo puedes obtener el índice de un elemento de un array usando JavaScript. Se trata de una tarea muy común que resulta útil cuando conoces el valor de un elemento pero quieres obtener su posición en el interior de un array.

También podría darse el caso de que no sepas si el valor del elemento está o no en el array. En ambos casos, siempre que el elemento que buscas sea un valor primitivo y no un objeto, la solución es el método indexOf, disponible en los arrays de JavaScript. Un tipo primitivo es un valor como un número o una cadena de texto. En caso de tratarse de un objeto, tendrías que usar el método findIndex.

Índice de un tipo primitivo

A continuación vamos a ver cómo usar el método indexOf, que nos devolverá el índice del elemento que le pasemos como parámetro si el elemento está en el array, o -1 en caso contrario.

En el siguiente ejemplo obtenemos el índice del valor 'manzana' usando el método indexOf en el array frutas:

const frutas = ['naranja', 'manzana', 'platano'];

const indice = frutas.indexOf('manzana'); // 1

Tal y como ves, hemos obtenido el índice como resultado, cuyo valor es 1 a pesar de tratarse del segundo elemento del array, ya que los índices comienzan por 0.

En este otro ejemplo, buscamos un valor en el array que no existe, por lo que obtenemos -1 como resultado:

const frutas = ['naranja', 'manzana', 'platano'];

const indice = frutas.indexOf('fresa'); 

console.log(indice); // -1

Índice de un objeto

En caso de que queramos obtener el índice de un objeto, no podríamos usar el método indexOf, ya que los objetos no son más que una referencia con varias propiedades. Los objetos se comparan por referencia, mientras que los tipos primitivos se comparan por valor, por lo que nunca encontraremos el objeto en el array usando este método.

Sin embargo, podemos usar el método findIndex, que acepta una función como parámetro que se ejecutará con cada uno de sus elementos. Esta función se ejecutará con el cada elemento y cada índice, que el propio método findIndex se encargará de rellenar en cada iteración.

Lo que vamos a hacer en el siguiente ejemplo es buscar si el el valor de la propiedad nombre de los objetos del array se corresponde con el valor que conocemos. Si encontramos el valor devolvemos true. De lo contrario continuamos la ejecución:

const frutas = [
  { nombre: 'naranja', forma: 'redonda' },
  { nombre: 'manzana', forma: 'redonda' },
  { nombre: 'platano', forma: 'alargada' },
];

const indice = frutas.findIndex((elemento, indice) => {
  if (elemento.nombre === 'manzana') {
    return true;
  }
});

console.log(indice); // 1

Si quieres más información acerca de cómo gestionar arrays, consulta estos tutoriales:

Y esto ha sido todo.


Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

“- Hey, Doc. No tenemos suficiente carretera para ir a 140/h km. - ¿Carretera? A donde vamos, no necesitaremos carreteras.”