Como remover o último caractere de uma string JavaScript? Guia passo a passo para iniciantes e profissionais
Você já se deparou com uma situação em que precisava remover uma vírgula extra no final de uma string, remover um ponto ou simplesmente "cortar" o último caractere? Esta pergunta é um verdadeiro sucesso no Stack Overflow com centenas de milhares de visualizações. E não é à toa: trabalhar com strings é a base sobre a qual se sustenta 90% do desenvolvimento front-end.
Neste artigo, não vamos apenas dar respostas secas. Vamos analisar 5 maneiras práticas, mostrar as armadilhas e ensinar a escolher a ferramenta certa para cada tarefa. Vamos nessa!
Por que isso é importante? Três cenários da vida real
Antes de mergulhar no código, vamos imaginar situações onde você certamente precisará remover o último caractere de uma string JavaScript:
- Formatação de listas: Você junta um array em uma string com
join(', '), mas no final sobra uma vírgula extra. - Processamento de URL: Precisa remover a barra no final do endereço antes de enviar ao servidor.
- Trabalhando com IDs: De uma string como "item-123-" é necessário remover o último hífen.
Parece familiar? Então vamos analisar os métodos para remover o último caractere em JavaScript.
Método nº1: slice() — o rei da simplicidade e velocidade
Esta é a maneira mais popular e intuitiva. O método slice() retorna um novo array (ou string), copiando elementos a partir de uma posição especificada.
let str = "Olá, mundo!";let result = str.slice(0, -1);console.log(result); // "Olá, mundo"Como funciona? slice(0, -1) significa: "pegue todos os caracteres, começando do índice 0, e pare 1 caractere antes do final". Índices negativos em JavaScript são a contagem a partir do final da string. Genial e conciso!
Prós e contras do slice():
- Pró: Funciona tanto com strings quanto com arrays. Não altera a string original.
- Pró: O método mais rápido em 95% dos casos (de acordo com testes JSperf).
- Contra: Não é adequado se você precisar remover não o último caractere, mas, digamos, os últimos 3.
slice() como sua ferramenta principal. É o padrão da indústria.Método nº2: substring() — um amigo antigo, mas confiável
O método substring() é contemporâneo do JavaScript. Ele funciona de forma semelhante, mas com uma diferença importante: ele não entende índices negativos e simplesmente os transforma em 0.
let str = "JavaScript";// Para remover o último caractere, você precisa saber o comprimentolet result = str.substring(0, str.length - 1);console.log(result); // "JavaScrip"Viu? É necessário calcular o comprimento da string. Isso é inconveniente, mas historicamente, substring() é frequentemente encontrado em código antigo (legado).
Quando usar substring?
- Se você precisa de suporte para navegadores muito antigos (IE 8 e inferiores — mas isso é raro).
- Se você está escrevendo código educacional e quer mostrar explicitamente a lógica de trabalho com índices.
Importante: substring() troca os argumentos de lugar se o primeiro for maior que o segundo. slice() neste caso retorna uma string vazia. Fique atento!
Método nº3: substr() — obsoleto, mas ainda vivo
Sim, substr() é oficialmente considerado obsoleto (deprecated) na especificação ECMAScript. Mas você ainda o encontrará em milhões de linhas de código no GitHub.
let str = "Remover!";let result = str.substr(0, str.length - 1);console.log(result); // "Remover"A diferença para o substring() é que o segundo argumento é o comprimento da parte a ser extraída, e não o índice final. Confuso? Um pouco.