| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf | [Back] [Original] |
Get to know MDN better
Esta pgina ha sido traducida del ingls por la comunidad. Aprende ms y nete a la comunidad de MDN Web Docs.
This feature is well established and works across many devices and browser versions. Its been available across browsers since julio de 2015.
El mtodo lastIndexOf() devuelve el ltimo ndice en el que un cierto elemento puede encontrarse en el arreglo, -1 si el elemento no se encontrara. El arreglo es recorrido en sentido contrario, empezando por el ndice fromIndex.
const animals = ["Dodo", "Tiger", "Penguin", "Dodo"];
console.log(animals.lastIndexOf("Dodo"));
// Expected output: 3
console.log(animals.lastIndexOf("Tiger"));
// Expected output: 1
arr.lastIndexOf(searchElement) arr.lastIndexOf(searchElement, fromIndex)
searchElementElemento a encontrar en el arreglo.
fromIndex OpcionalEl ndice en el que empieza la bsqueda en sentido contrario. Por defecto la longitud del arreglo menos uno (arr.length - 1), es decir, todo el arreglo ser recorrido. Si el ndice es mayor o igual que la longitud del arreglo, todo el arreglo ser recorrido. Si es un valor negatigo, se usar como inicio del desplazamiento el final del arreglo. Darse cuenta que an cuando el ndice es negativo, el arreglo todava ser recorrido desde atrs hacia delante. Si el ndice calculado es menor de 0, se devolver -1, es decir, el arreglo no ser recorrido.
El ltimo ndice del elemento en el arreglo; -1 si no se encuentra.
lastIndexOf compara searchElement con los elementos del arreglo usando igualdad estricta (el mismo mtodo es usado para la ===, operador triple igualdad).
lastIndexOfEl siguiente ejemplo usa lastIndexOf para encontrar valores en un arreglo.
var array = [2, 5, 9, 2];
array.lastIndexOf(2); // 3
array.lastIndexOf(7); // -1
array.lastIndexOf(2, 3); // 3
array.lastIndexOf(2, 2); // 0
array.lastIndexOf(2, -2); // 0
array.lastIndexOf(2, -1); // 3
El siguiente ejemplo uses lastIndexOf encuentra todos los ndices de un elemento en un arreglo dado, usando push aadindolos a otro arreglo como elementos encontrados.
var indices = [];
var array = ["a", "b", "a", "c", "a", "d"];
var element = "a";
var idx = array.lastIndexOf(element);
while (idx != -1) {
indices.push(idx);
idx = idx > 0 ? array.lastIndexOf(element, idx - 1) : -1;
}
console.log(indices);
// [4, 2, 0]
Darse cuenta que en este caso tenemos que tratar idx == 0 de forma separada por que el elemento siempre ser encontrado independiemente del valor del parmetro fromIndex si este es el primer elemento del arreglo. Diferente de como se trata en el mtodo indexOf.
lastIndexOf fue aadido al estndar ECMA-262 en la 5 edicin; por tanto puede que no este presente en otras implementaciones del estndar. Puedes solucionarlo escribiendo el siguiente cdigo al principio de tus scripts, pudiendo usar lastIndexOf en implementaciones que no tiene soporte de forma nativa. Este algoritmo es exactamente el especificado en ECMA-262, 5 edicin, suponiendo que Object, TypeError, Number, Math.floor, Math.abs, y Math.min tienen sus valores originales.
// Pasos de produccin de ECMA-262, Edicin 5, 15.4.4.15
// Referencia: http://es5.github.io/#x15.4.4.15
if (!Array.prototype.lastIndexOf) {
Array.prototype.lastIndexOf = function (searchElement /*, fromIndex*/) {
"use strict";
if (this === void 0 || this === null) {
throw new TypeError();
}
var n,
k,
t = Object(this),
len = t.length >>> 0;
if (len === 0) {
return -1;
}
n = len - 1;
if (arguments.length > 1) {
n = Number(arguments[1]);
if (n != n) {
n = 0;
} else if (n != 0 && n != 1 / 0 && n != -(1 / 0)) {
n = (n > 0 || -1) * Math.floor(Math.abs(n));
}
}
for (k = n >= 0 ? Math.min(n, len - 1) : len - Math.abs(n); k >= 0; k--) {
if (k in t && t[k] === searchElement) {
return k;
}
}
return -1;
};
}
De nuevo, darse cuenta que esta implementacin tiene como objeto la completa compatibilidad con lastIndexOf en Firefox y el motor SpiderMonkey JavaScript, en particular en varios casos que son posiblemente extremos. Si pretendes usar esta funcionalidad en aplicaciones reales, es posible que puedes calcular from con cdigo menos complejo si ignoras estos casos.
| Specification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-array.prototype.lastindexof |
This page was last modified on 11 feb 2025 by MDN contributors.
ArrayArray.prototype.at()Array.prototype.concat()Array.prototype.copyWithin()Array.prototype.entries()Array.prototype.every()Array.prototype.fill()Array.prototype.filter()Array.prototype.find()Array.prototype.findIndex()findLast()findLastIndex()Array.prototype.flat()Array.prototype.flatMap()Array.prototype.forEach()Array.prototype.includes()Array.prototype.indexOf()Array.prototype.join()Array.prototype.keys()Array.prototype.lastIndexOf()Array.prototype.map()Array.prototype.pop()Array.prototype.push()Array.prototype.reduce()Array.prototype.reduceRight()Array.prototype.reverse()Array.prototype.shift()Array.prototype.slice()Array.prototype.some()Array.prototype.sort()Array.prototype.splice()Array.prototype.toLocaleString()toReversed()Array.prototype.toSorted()toSpliced()Array.prototype.toString()Array.prototype.unshift()Array.prototype.values()with()Array.prototype[@@iterator]()Object/FunctionYour blueprint for a better internet.
Portions of this content are 19982026 by individual mozilla.org contributors. Content available under a Creative Commons license.
| Web Proxy Viewer | New URL | Original Page |