El método o función indexOf de los arrays de
javascript, sirve para obtener el índice o posición de un elemento dado en un array.
Algunos navegadores como Internet Explorer 8 no cuentan con la definición de la función nativamente por lo que antes de utilizarla la debemos definir. Tomaremos la definición que se encuentra en la documentación de Javascript de la fundación Mozilla y luego veremos algunos ejemplos de su uso:
if (!Array.prototype.indexOf)
{
Array.prototype.indexOf = function(searchElement /*, fromIndex */)
{
"use strict";
if (this === void 0 || this === null)
throw new TypeError();
var t = Object(this);
var len = t.length >>> 0;
if (len === 0)
return -1;
var n = 0;
if (arguments.length > 0)
{
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));
}
if (n >= len)
return -1;
var k = n >= 0
? n
: Math.max(len - Math.abs(n), 0);
for (; k < len; k++)
{
if (k in t && t[k] === searchElement)
return k;
}
return -1;
};
}
var array = [1,2,3,4];
log('En array el elemento 2 se encuentra en la posición: ' + array.indexOf(2));
log('En array el elemento 4 se encuentra en la posición: ' + array.indexOf(4));
log('En array el elemento 1 se encuentra en la posición: ' + array.indexOf(1));
log('En array el elemento 0 no se encuentra, indexOf devuelve: ' + array.indexOf(0)); // -1
Hay que tener en cuenta que como se ve en la definición
de indexOf anterior, el operador que se utiliza para
saber si un elemento está incluído o no es: === y
no ==, por lo que la comparación de tipos también se
realiza y por ejemplo la búsqueda de false como elemento
no dará como resultado el índice de un 0 o un string
vacío, algo que si ocurriría si se utilizara == como
operador de comparación de igualdad.

0 comentarios:
Publicar un comentario