//função para pesquisar array e retornar o indice de um valor
// ---
// procura a posição de um valor dentro de um array de acordo com o parametero 'valor'
// retorna -1 se não encontrar o valor
//
// --- syntax:
// array.search( valor [, de, restrito])
// - valor: valor a procurar
// - de: posição de inicio da procura
// - restrito: valor booleano. Se true verifica se o tipo de dados corresponde
// ex: 0 é diferente de "0" um é do tipo INT e o 2º é uma String
// Por isso são de tipos diferentes
// ---
Array.prototype.search = function(valor, de, restrito)
{
if(de == undefined || de >= this.length) de = 0;
restrito = restrito == undefined ? false : restrito;
for(var a = de; a < this.length; a++)
{
if(this[a] == valor)
{
if(restrito)
{
if(this[a].__proto__ == valor.__proto__)
{
return a;
}
} else {
return a;
}
}
}
return -1;
};
// --------
// uso da função
// --------
/*
a = [0,1,2,3,4,5,'',7,"0",1]
b = "0"
resultado = a.search(b) // retorna 0
resultado2 = a.search(b,0,true) // retorna 8
resultado3 = a.search(b,9) // retorna -1
*/