Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Distinção entre maiúsculas e minúsculas na busca de nome dos pacientes

Boa tarde Douglas

No exercício para saber mais, filtrando sem utilizar expressões regulares, você nos deixou o seguinte código, para fazer a distinção entre maiúsculas e minúsculas.

var comparavelMinusculo = comparavel.toLowerCase();
var valorDigitadoMinusculo = this.value.toLowerCase();

if (!(valorDigitadoMinusculo == comparavelMinusculo)) {
    paciente.classList.add("invisivel");
} else{
    paciente.classList.remove("invisivel");

Mas antes de conferir sua resposta, havia feito de uma outra maneira, o que economizou algumas linhas de código. Peço a gentileza de conferir se está realmente certo. Nos meus testes aqui, funcionou tranquilo.

let campoFiltro = document.querySelector("#filtrar-tabela");

campoFiltro.addEventListener("input", function(){
    let pacientes = document.querySelectorAll('.paciente');

    if(this.value.length > 0){
        for(i = 0; i < pacientes.length; i++){
            let paciente = pacientes[i];
            let tdNome = paciente.querySelector('.info-nome');
            let nome = tdNome.textContent;
            let subNome = nome.substr(0,this.value.length);
            if(this.value != subNome){//Distinção entre maiúsculas e minúsculas
                paciente.classList.add('invisivel');
            }else{
                paciente.classList.remove('invisivel');
            }
        }
    } else{
        for(i = 0; i < pacientes.length; i++){
            let paciente = pacientes[i];
            paciente.classList.remove('invisivel');
        }
    }

});

Desde já agradeço.

3 respostas

Frederico, boa tarde!

Eu conferi o seu código, ele está certo! Inclusive é uma solução possível, achei interessante a forma que você utilizou para resolver a questão.

Está correto, o que eu recomendaria agora seria comparar com a solução do instrutor e testar, pois assim você chegar numa conclusão sobre qual maneira lhe parece mais legível, e prático.

Espero ter ajudado e bons estudos!

solução!

Boa tarde, Frederico! Como vai?

Perceba que o código do instrutor tem como objetivo desconsiderar se a busca é feita com maiúscula ou minúscula! Já o seu código faz o contrário, pois diferencia letras maiúsculas de minúsculas! Sendo assim, no seu código, se eu tivesse uma palavra "laranja" e buscasse por "Lara", não obteria nenhum resultado!

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Compreendi, tinha entendido errado mesmo, achei que o objetivo fazer a distinção entre maiúsculas e minúsculas, mas na verdade é não fazer, ou seja, se eu buscar paulo ou Paulo, ambos têm de retornar o paciente.

Obrigado