Método indexOf

El método indexOf realiza una búsqueda de un elemento en un array. En el primer parámetro especificamos el elemento a buscar. El método devuelve el índice del primer elemento encontrado, o -1 si no existe tal elemento. El segundo parámetro opcional del método establece la posición desde la cual debe comenzar la búsqueda.

Sintaxis

javascriptarray.indexOf(elemento, [desde dónde comenzar]);

Ejemplo

Encontremos la posición del primer tres en el array:

javascriptlet arr = [1, 2, 3, 3, 3, 4, 5];
let res = arr.indexOf(3);

console.log(res);

Resultado de la ejecución del código:

javascript2

Ejemplo

Supongamos ahora que el elemento a verificar no está en el array:

javascriptlet arr = [1, 2, 3, 4, 5];
let res = arr.indexOf(6);

console.log(res);

Resultado de la ejecución del código:

javascript-1

Ejemplo

Comencemos la búsqueda desde una posición dada:

javascriptlet arr = [1, 2, 3, 4, 5, 3];
let res = arr.indexOf(3, 4);

console.log(res);

Resultado de la ejecución del código:

javascript5

Error común

A veces el método se utiliza para verificar la presencia de un elemento en un array. En este caso es fácil cometer un error si la verificación se realiza de la siguiente manera:

javascriptif (arr.indexOf(3)) {
  console.log(true);
} else {
  console.log(false);
}

Dicha verificación funcionará para todas las posiciones, excepto para la cero - ya que esta se interpreta como false.

Es correcto verificar la presencia de un elemento de la siguiente manera:

javascriptif (arr.indexOf(3) !== -1) {
  console.log(true);
} else {
  console.log(false);
}

Véase también

  • método includes,
    que verifica la presencia de un elemento en un array
  • método lastIndexOf,
    que busca elementos desde el final
  • método at,
    que devuelve un elemento del array por su índice
  • método match,
    que busca coincidencias en una cadena
  • método search,
    que realiza una búsqueda