EClientes.all().order("ativo", false).order('sinc', true).list(function(results) {
localComp = new BuscaLocalStora(arrayValues);
};
$('XX").on('keyup', function(e) {
var val = yy.val();
localComp.buscaElementoOR(val ,[['nome', '%=='], ['fantasia', '%=='], ['cidade', '%==']]);
});
function BuscaLocalStora(arrayResults) {
var arrayGeral = arrayResults;
var arrayFiltrado = [];
var ultimoValor = '';
this.buscaElementoOR = buscaElementoOR;
this.setArray = setArray;
this.getLengthArrayGeral = getLengthArrayGeral;
function getLengthArrayGeral(){
return arrayGeral.length;
}
function setArray(array) {
arrayResults = array;
}
function buscaElementoOR(valor, operacao) {
var start = new Date().getTime();
if(valor.length != 0){
if (ultimoValor.length == 0) {
arrayFiltrado = filtragem(arrayGeral, valor, operacao);
} else if (ultimoValor.length < valor.length) {
arrayFiltrado = filtragem(arrayFiltrado, valor, operacao);
} else {
arrayFiltrado = filtragem(arrayGeral, valor, operacao);
}
}else {
arrayFiltrado = arrayGeral;
}
ultimoValor = valor;
var end = new Date().getTime();
var time = end - start;
console.log('Execution time: ' + time);
return arrayFiltrado;
}
function filtragem(results, valor, operacao) {
var retorno = [];
var contador = 0;
for (var i = (results.length - 1); i >= 0; i--) {
var elemento = results[i];
var inserido = 0;
for (var j = (operacao.length - 1); j >= 0; j--) {
var busca = operacao[j];
if (inserido == 0) {
if (busca[1] == '%==') {
if (elemento[busca[0]].toString().toLocaleLowerCase().indexOf(valor.toString().toLocaleLowerCase()) != -1) {
retorno[contador++] = elemento;
inserido++;
}
} else if (busca[1] == '==') {
if (elemento[busca[0]].toString().toLocaleLowerCase() == valor.toString().toLocaleLowerCase()) {
retorno[contador++] = elemento;
inserido++;
}
}
}
};
};
return retorno;
}
}
var i = results.length;
while(--i >= 0) {}
var j = operacao.length;
while(--j >= 0) {}