Метод lastIndexOf() в javascript возвращает последний индекс, в котором данный элемент может быть найден в массиве, или -1, если его нет. Массив выполняется в обратном порядке, начиная сIndex.
Синтаксис выглядит следующим образом:
array.lastIndexOf(searchElement[, fromIndex]);
Возвращает индекс найденного элемента из последнего.
Этот метод является расширением JavaScript стандарта ECMA-262; как таковой, он не может присутствовать в других реализациях стандарта. Чтобы он работал, вам нужно добавить следующий код в верхней части вашего скрипта.
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; }; }
Попробуйте следующий пример.
<html>
<head>
<title>JavaScript - Массивы. Метод lastIndexOf</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 );
var index = [12, 5, 8, 130, 44, 5].lastIndexOf(5);
document.write("<br />Индекс : " + index );
</script>
</body>
</html>
Индекс : 2 Индекс : 5