Como fazer um filtro com múltiplos campos combinados no javascript?
18/08/2022
0
quero fazer um filtro.
CAMPOS: NOME, CATEGORIA, VALOR, DATA, ID
Se a pessoa completar somente NOME, quero que retorne todos os objetos que tenham este NOME.
Mas se a pessoas preencher NOME e VALOR, quero que retorne apenas os objetos que tenham este NOME e este VALOR, ao mesmo tempo.
Pra isso, criei uma regra pra cada possibilidade, diversos "IF", porém, isso é mt chato e demorado.
Tem uma ideia melhor?
Segue o trecho do código de filtro:
quero fazer um filtro.
CAMPOS: NOME, CATEGORIA, VALOR, DATA, ID
Se a pessoa completar somente NOME, quero que retorne todos os objetos que tenham este NOME.
Mas se a pessoas preencher NOME e VALOR, quero que retorne apenas os objetos que tenham este NOME e este VALOR, ao mesmo tempo.
Pra isso, criei uma regra pra cada possibilidade, diversos "IF", porém, isso é mt chato e demorado.
Tem uma ideia melhor?
Segue o trecho do código de filtro:
function fPesquisar (pesquisaNome, pesquisaCategoria, pesquisaValor, pesquisaIdInterno){ var resultadoFiltrado = produtos.filter(item => item.nomeOriginal == pesquisaNome && item.categoria == pesquisaCategoria && item.valor == pesquisaValor || // NOME + CATEGORIA + VALOR item.nomeOriginal == pesquisaNome && item.categoria == pesquisaCategoria && pesquisaValor == "" || // NOME + CATEGORIA OOOK item.nomeOriginal == pesquisaNome && pesquisaCategoria == "" && item.valor == pesquisaValor || // NOME + VALOR OOOK pesquisaNome == "" && item.categoria == pesquisaCategoria && item.valor == pesquisaValor || // CATEGORIA + VALOR item.nomeOriginal == pesquisaNome && pesquisaCategoria == "" && pesquisaValor =="" || //NOME pesquisaNome == "" && item.categoria == pesquisaCategoria && pesquisaValor == "" || // CATEGORIA pesquisaNome == "" && pesquisaCategoria == "" && item.valor == pesquisaValor || // VALOR pesquisaNome == "" && pesquisaCategoria == "" && pesquisaValor == "" && item.idInterno == pesquisaIdInterno || // VALOR pesquisaNome == "" && pesquisaCategoria == "" && pesquisaValor == "" && item.pesquisaIdInterno == "" // VAZIO ) console.log(resultadoFiltrado); var exibeBuscaEspecificaFiltro = resultadoFiltrado.map(function(item){ return item.nome + separador + item.categoria + separador + item.valor + separador + item.idInterno; }) document.getElementById("resultadoExtrato").innerHTML = exibeBuscaEspecificaFiltro; }
Rôney Fischer
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)