JavaScript - método array lastIndexOf ()
Descrição
Array Javascript lastIndexOf()método retorna o último índice no qual um determinado elemento pode ser encontrado na matriz, ou -1 se não estiver presente. A matriz é pesquisada ao contrário, começando emfromIndex.
Sintaxe
Sua sintaxe é a seguinte -
array.lastIndexOf(searchElement[, fromIndex]);
Detalhes de Parâmetro
searchElement - Elemento a localizar na matriz.
fromIndex- O índice no qual iniciar a pesquisa para trás. O padrão é o comprimento do array, ou seja, todo o array será pesquisado. Se o índice for maior ou igual ao comprimento do array, todo o array será pesquisado. Se negativo, é considerado o deslocamento do final da matriz.
Valor de retorno
Retorna o índice do último elemento encontrado.
Compatibilidade
Este método é uma extensão JavaScript do padrão ECMA-262; como tal, pode não estar presente em outras implementações do padrão. Para fazer isso funcionar, você precisa adicionar o código a seguir na parte superior do seu 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;
};
}
Exemplo
Experimente o seguinte exemplo.
<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>
Resultado
index is : 2
index is : 5