1
resposta

validar letra maiúscula

Não consigo adicionar para validar a letra maiúscula

let amigos = [];

function adicionar(){
    let amigo = document.getElementById('nome-amigo');

    if(amigo.value == ''){
        alert('Informe o nome do amigo!')
        return;
    }

    if(amigos.includes(amigo.value)){
        alert('Nome já adicionado!')
        return;
    }

    let lista = document.getElementById('lista-amigos'); 
    
    amigos.push(amigo.value);
    
    // Se o lista.textContent estiver vazio, colocamos o nome do amigo. 
    if (lista.textContent == '') {
    lista.textContent = amigo.value; 
    } // Senão, adicionamos uma vírgula para separar os nomes e adicionamos outro nome. 
    else {
        lista.textContent = lista.textContent + ', ' + amigo.value; 
    }
    // Limpa o campo depois de adicionar um nome, sem precisar apagar o anterior manualmente.
    amigo.value = '';

    atualizarLista();
    atualizarSorteio();
}

function sortear() {

    if (amigos.length < 4) {
        alert('O número de amigos precisa ser pelo menos 4!')
        return;
    }

    embaralha(amigos);
    let sorteio = document.getElementById('lista-sorteio');
    
    for (let i = 0; i < amigos.length; i++) {
        if (i == amigos.length - 1){
            sorteio.innerHTML = sorteio.innerHTML + amigos[i] + ' --> ' + amigos[0] + '<br>';
        } else { 
            sorteio.innerHTML = sorteio.innerHTML + amigos[i] + ' --> ' + amigos[i+1] + '<br>'; 
        }  
    }
}

function excluirAmigo(index) {
    amigos.splice(index, 1);
    atualizarLista();
    atualizarSorteio();
}

function embaralha(lista) {

    for (let indice = lista.length; indice; indice--) {

        const indiceAleatorio = Math.floor(Math.random() * indice);

        // atribuição via destructuring
        [lista[indice - 1], lista[indiceAleatorio]] = 
            [lista[indiceAleatorio], lista[indice - 1]];
    }
}

function reiniciar() {
    amigos = [];
    document.getElementById('lista-amigos').innerHTML = '';
    document.getElementById('lista-sorteio').innerHTML = ''; 
}
1 resposta

Olá Thaís! Tudo bem?

Para resolver o seu problema de validar letras maiúsculas e minúsculas, você pode converter todos os nomes para maiúsculas antes de adicioná-los ao array e também antes de realizar a verificação de duplicidade. Isso garantirá que nomes como "ANA" e "ana" sejam tratados como iguais.

Você pode modificar a função adicionar() da seguinte forma:

function adicionar(){
    let amigo = document.getElementById('nome-amigo');

    if(amigo.value == ''){
        alert('Informe o nome do amigo!')
        return;
    }

    // Converte o nome para maiúsculas
    let nomeMaiusculo = amigo.value.toUpperCase();

    if(amigos.includes(nomeMaiusculo)){
        alert('Nome já adicionado!')
        return;
    }

    let lista = document.getElementById('lista-amigos'); 
    
    amigos.push(nomeMaiusculo);
    
    if (lista.textContent == '') {
        lista.textContent = nomeMaiusculo; 
    } else {
        lista.textContent = lista.textContent + ', ' + nomeMaiusculo; 
    }

    amigo.value = '';

    atualizarLista();
    atualizarSorteio();
}

Dessa forma, ao adicionar um nome, ele sempre será convertido para maiúsculas, garantindo que a verificação de duplicidade funcione corretamente.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.