JavaScript: metodo array lastIndexOf ()
Descrizione
Matrice Javascript lastIndexOf()restituisce l'ultimo indice in cui un dato elemento può essere trovato nell'array, o -1 se non è presente. L'array viene ricercato all'indietro, a partire dafromIndex.
Sintassi
La sua sintassi è la seguente:
array.lastIndexOf(searchElement[, fromIndex]);
Dettagli dei parametri
searchElement - Elemento da individuare nell'array.
fromIndex- L'indice dal quale iniziare la ricerca all'indietro. Il valore predefinito è la lunghezza dell'array, cioè verrà cercato l'intero array. Se l'indice è maggiore o uguale alla lunghezza dell'array, verrà eseguita la ricerca nell'intero array. Se negativo, viene considerato come offset dalla fine della matrice.
Valore di ritorno
Restituisce l'indice dell'elemento trovato dall'ultimo.
Compatibilità
Questo metodo è un'estensione JavaScript dello standard ECMA-262; come tale potrebbe non essere presente in altre implementazioni dello standard. Per farlo funzionare, è necessario aggiungere il codice seguente all'inizio dello 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;
};
}
Esempio
Prova il seguente esempio.
<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>
Produzione
index is : 2
index is : 5