Explicação e testes

1 - Criar uma função que retorne a quantidade de vogais da palavra passada:

Criei uma função principal chamada contarVogais que recebe uma string como parâmetro e retorna a quantidade de vogais presentes na palavra. Usei a string de caracteres vogais "aeiouAEIOU" para verificar se cada letra é uma vogal.


function contarVogais(palavra: string): number {
    const vogais = "aeiouAEIOU";
    return Array.from(palavra).filter(letra => vogais.includes(letra)).length;
};
                

a) Dar um exemplo de uso com uma palavra recebida via parâmetro da função:

Utilizei a palavra "exemplo" para testar a função. Como resultado, a função retornou 3 vogais.


const palavra = "exemplo";
const quantidadeVogais = contarVogais(palavra);
// Teste
console.log(`A palavra "${palavra}" contém ${quantidadeVogais} vogais.`);
                

b) Dar um exemplo de uso com uma palavra recebida via input no formulário:

Criei uma função chamada mostrarResultado que recebe as informações do input que recebe a classe palavra, onde retorna a quantidade de vogais da mesma. Caso o usuário não escreva nada no campo de texto e clique no botão que recebe o valor resultado, aparecerá uma mensagem pedindo que escreva algo.


function mostrarResultado(): void {
    const palavraInput = (getElementoPorId('palavra') as HTMLInputElement)?.value.trim();
    const resultadoDiv = getElementoPorId('resultado');

    if (!palavraInput) {
        atualizarResultado(resultadoDiv, 'Por favor, digite uma palavra.');
        return;
    };

    const resultado = contarVogais(palavraInput);
    atualizarResultado(resultadoDiv, `A palavra '${palavraInput}' tem ${resultado} vogais.`);
};
                

Testando a Função via HTML

Digite uma palavra abaixo e clique no botão para contar as vogais:

Resultado

2 - Dado o array:


let lista: Item[] = [
    { id: 1, name: "Ada Lovelace", bio: "Matemática e escritora inglesa, pioneira em algoritmos." },
    { id: 2, name: "Alan Turing", bio: "Pai da ciência da computação e da inteligência artificial." },
    { id: 3, name: "Nikola Tesla", bio: "Inventor e engenheiro conhecido por suas contribuições à eletricidade." },
    { id: 4, name: "Nicolau Copérnico", bio: "Astrônomo que desenvolveu a teoria heliocêntrica." }
];
                

a) Crie uma função que retorne a bio do id passado

A função exibirBio busca na lista de itens a biografia do usuário. Se o ID não for válido, a função exibe uma mensagem de que o ID não é válido. Se encontrar o item, ela vai mostrar a história dele.


function exibirBio(): void {
    const id = parseInt((document.getElementById('id') as HTMLInputElement).value);
    const resultadoDiv = document.getElementById('resultado2') as HTMLDivElement;

    if (isNaN(id)) {
        resultadoDiv.innerText = 'Por favor, digite um ID válido.';
        return;
    }

    const item = lista.find(item => item.id === id);
    if (item) {
        resultadoDiv.innerText = `Biografia: ${item.bio}`;
    } else {
        resultadoDiv.innerText = 'Nenhuma biografia encontrada para este ID.';
    };
};
                

b) Crie uma função que retorne o nome do id passado

É parecida com a exibiçãoBio, mas em vez de mostrar a biografia, mostra o nome do item correspondente ao ID. Se o número do usuário não for encontrado ou estiver errado, a função avisa que o número não existe.


function exibirNome(): void {
    const id = parseInt((document.getElementById('id') as HTMLInputElement).value);
    const resultadoDiv = document.getElementById('resultado2') as HTMLDivElement;

    if (isNaN(id)) {
        resultadoDiv.innerText = 'Por favor, digite um ID válido.';
        return;
    };

    const item = lista.find(item => item.id === id);
    if (item) {
        resultadoDiv.innerText = `Nome: ${item.name}`;
    } else {
        resultadoDiv.innerText = 'Nenhum nome encontrado para este ID.';
    };
};
                

c) Crie uma função que apague um item da lista a partir de um id passado

Essa função tenta remover o item correspondente. Se o ID for válido, a função usa splice para excluir o item e atualizar a página. Se o ID não for encontrado ou inválido, ela avisa que não existe. A função atualiza a lista se houver alterações.


function deletarItem(): void {
    const id = parseInt((document.getElementById('id') as HTMLInputElement).value);
    const resultadoDiv = document.getElementById('resultado2') as HTMLDivElement;

    if (isNaN(id)) {
        resultadoDiv.innerText = 'Por favor, digite um ID válido.';
        return;
    };

    const index = lista.findIndex(item => item.id === id);
    if (index !== -1) {
        lista.splice(index, 1);
        resultadoDiv.innerText = `Item com ID ${id} foi deletado.`;
        renderLista();
    } else {
        resultadoDiv.innerText = 'Item não encontrado.';
    };
};
                

d) Crie uma função que altere a bio ou o name a partir de um id passado

Essa função muda os dados de um item. Ela recebe o ID, nome e biografia e atualiza o item. Se você quiser mudar apenas um dos campos (nome ou biografia), pode fazer isso, mas só o campo que foi preenchido será mudado. Se ambos os campos forem atualizados, a função atualiza ambos os campos. Se o ID não estiver correto, a função avisa que o item não foi encontrado.


function atualizarItem(): void {
    const id = parseInt((document.getElementById('id') as HTMLInputElement).value);
    const newName = (document.getElementById('novoNome') as HTMLInputElement).value.trim();
    const newBio = (document.getElementById('novaBio') as HTMLInputElement).value.trim();
    const resultadoDiv = document.getElementById('resultado2') as HTMLDivElement;

    if (isNaN(id) || (!newName && !newBio)) {
        resultadoDiv.innerText = 'Por favor, digite um ID válido e pelo menos um campo para atualizar.';
        return;
    };

    const item = lista.find(item => item.id === id);
    if (item) {
        if (newName) item.name = newName;
        if (newBio) item.bio = newBio;
        resultadoDiv.innerText = `Item com ID ${id} foi atualizado.`;
        renderLista();
    } else {
        resultadoDiv.innerText = 'Item não encontrado.';
    };
};
                

Testando a Função via HTML

Resultado

Lista de Biografias