JavaScript - Array lastIndexOf (), méthode

La description

Tableau Javascript lastIndexOf()La méthode retourne le dernier index auquel un élément donné peut être trouvé dans le tableau, ou -1 s'il n'est pas présent. Le tableau est recherché en arrière, à partir defromIndex.

Syntaxe

Sa syntaxe est la suivante -

array.lastIndexOf(searchElement[, fromIndex]);

Détails des paramètres

  • searchElement - Élément à localiser dans le tableau.

  • fromIndex- L'index à partir duquel commencer la recherche en arrière. La valeur par défaut est la longueur du tableau, c'est-à-dire que tout le tableau sera recherché. Si l'index est supérieur ou égal à la longueur du tableau, le tableau entier sera recherché. S'il est négatif, il est considéré comme le décalage à partir de la fin du tableau.

Valeur de retour

Renvoie l'index de l'élément trouvé à partir du dernier.

Compatibilité

Cette méthode est une extension JavaScript de la norme ECMA-262; en tant que tel, il peut ne pas être présent dans d'autres implémentations de la norme. Pour que cela fonctionne, vous devez ajouter le code suivant en haut de votre script.

if (!Array.prototype.lastIndexOf) {
   Array.prototype.lastIndexOf = function(elt /*, from*/) {
      var len = this.length;
      var from = Number(arguments[1]);
      
      if (isNaN(from)) {
         from = len - 1;
      } else {
         from = (from < 0)
         ? Math.ceil(from)
         : Math.floor(from);

         if (from < 0)
         from += len;
         
         else if (from >= len)
         from = len - 1;
      }
      
      for (; from > -1; from--) {
         if (from in this &&
         this[from] === elt)
         return from;
      }
      return -1;
   };
}

Exemple

Essayez l'exemple suivant.

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

Production

index is : 2
index is : 5