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

Como deixar apenas a primeira letra maiúscula?

No exemplo do vídeo, mostra apenas a atualização de uma lista de nomes, deixando todas as letras maiúsculas, da seguinte forma:

let nomes = ["ana Julia", "Caio vinicius", "BIA silva"];
const nomesAtualizados = nomes.map( nome => nome.toUpperCase());
console.log(nomesAtualizados);

Existe algum método específico para deixar apenas as primeiras letras uppperCase? Exemplo: ["Ana Julia", "Caio Vinicius", "Bia Silva"]

2 respostas

Fala Joseane, tudo bem? Me propus ao desafio de transformar somente as primeiras letras dos nomes e sobrenomes maiúsculas. Ai ficou desse jeito:

const listaDeNomes = ["jose Ferreira", "Luan silva", "BIA Costa"];

// 1) transformar as strings dos elementos do array em minusculo com map() e toLowerCase()
const nomesMinusculos = listaDeNomes.map((nome) => nome.toLowerCase());

// 2) transformar a primeira letra do primeiro nome em maiuscula com map() e toUpperCase()
const primeiroNomePadronizado = nomesMinusculos.map((nome) => {
      const primeiraLetra = nome[0].toUpperCase();
      return nome.replace(nome[0], primeiraLetra);
});

// 3) tranformar a primeira letra do sobrenome em maiuscula
// pra isso, precisei criar um método que concatena meu nome com o sobrenome, e onde eu passo o index da string e passo o caracter que quero substituir naquele exato lugar .

String.prototype.replaceAt = function (index, replacement) {
      return this.substring(0, index) + replacement + this.substring(index + 1);
};

const nomesPadronizados = primeiroNomePadronizado.map((nome) => {
      const indexNome = nome.indexOf(" ") + 1;
      const letraMaiuscula = nome.substring(indexNome, indexNome + 1);
      return nome.replaceAt(indexNome, letraMaiuscula.toUpperCase());
});

// 4) pronto, só verificar o resultado agora 

console.log('Nomes minúsculos: ', nomesMinusculos);
console.log('Primeira letra maiúscula: ', primeiroNomePadronizado);
console.log('Nomes padronizados: ', nomesPadronizados);

Tenta ai e depois me fala se deu certo!

solução!

Deu muito certo, Lucas. Obrigada pela resposta!