JavaScript - Método Array indexOf ()

Descripción

Matriz de JavaScript indexOf() El método devuelve el primer índice en el que se puede encontrar un elemento dado en la matriz, o -1 si no está presente.

Sintaxis

Su sintaxis es la siguiente:

array.indexOf(searchElement[, fromIndex]);

Detalles de los parámetros

  • searchElement - Elemento a ubicar en la matriz.

  • fromIndex- El índice en el que comenzar la búsqueda. El valor predeterminado es 0, es decir, se buscará en toda la matriz. Si el índice es mayor o igual que la longitud de la matriz, se devuelve -1.

Valor devuelto

Devuelve el índice del elemento encontrado.

Compatibilidad

Este método es una extensión de JavaScript del estándar ECMA-262; como tal, puede que no esté presente en otras implementaciones del estándar. Para que funcione, debe agregar el siguiente código en la parte superior de su secuencia de comandos.

if (!Array.prototype.indexOf) {
   Array.prototype.indexOf = function(elt /*, from*/) {
      var len = this.length;
      
      var from = Number(arguments[1]) || 0;
      from = (from < 0)
      ? Math.ceil(from)
      : Math.floor(from);
      
      if (from < 0)
      from += len;
      
      for (; from < len; from++) {
         if (from in this &&
         this[from] === elt)
         return from;
      }
      return -1;
   };
}

Ejemplo

Pruebe el siguiente ejemplo.

<html>
   <head>
      <title>JavaScript Array indexOf Method</title>
   </head>
   
   <body>   
      <script type = "text/javascript">
         if (!Array.prototype.indexOf) {
            Array.prototype.indexOf = function(elt /*, from*/) {
               var len = this.length;
               
               var from = Number(arguments[1]) || 0;
               from = (from < 0)
               ? Math.ceil(from)
               : Math.floor(from);
               
               if (from < 0)
               from += len;
               
               for (; from < len; from++) {
                  if (from in this &&
                  this[from] === elt)
                  return from;
               }
               return -1;
            };
         }
         var index = [12, 5, 8, 130, 44].indexOf(8);
         document.write("index is : " + index ); 
         
         var index = [12, 5, 8, 130, 44].indexOf(13);
         document.write("<br />index is : " + index ); 
      </script>      
   </body>
</html>

Salida

index is : 2
index is : -1