Ampliando a String do JavaScript

Ampliando a String do JavaScript
alexandre-aquiles
alexandre-aquiles

Compartilhe

Será que existe alguma maneira de reverter os caracteres de uma String em JavaScript?


"arroz".reverse(); //TypeError: "arroz".reverse is not a function

É... Parece que não...

Banner dinâmico azul da Alura, celebrando seu Aniversário com tecnologia e modernidade. À esquerda, em letras grandes, '20% OFF no Aniversário da Alura', seguido por 'Estude na principal escola de tecnologia do país, com um desconto exclusivo, e eleve sua carreira para o próximo nível'. No centro, uma imagem de um computador com tela e monitor. À direita, conectados por uma linha azul suave representando uma trilha, os tópicos: programação, front-end, inteligência artificial, ciência de dados e muito mais. No final da trilha, um botão azul convida a 'Matricular-se'. No canto superior direito, o logo da Alura. Clique aqui para se matricular!

Mas um Array tem essa função de reverter:


[1,2,3].reverse(); //[3,2,1]

Poderíamos transformar a String em Array com split, reverter esse Array e transformá-lo novamente em String com um join. Tipo:


"arroz".split("").reverse().join(""); //"zorra"

Funcionou!

Seria legal se pudéssemos colocar esse nosso código na String do JavaScript... O incrível é que podemos!


String.prototype.reverse = function(){ 
    return this.split("").reverse().join(""); 
}

No código anterior, usamos o prototype de String: um objeto compartilhado por todas as Strings do JavaScript. Ao colocar a nova função reverse como propriedade desse prototype das Strings, estamos colocando essa nova função para todas as Strings!


"arroz".reverse(); //"zorra" 
"uva".reverse(); //"avu"
"ovo".reverse(); //"ovo"

Essa técnica de mudar detalhes da linguagem (como String), colocando código a mais é chamada de Monkey Patching, ou remendo em bom português. O pessoal mais experiente recomenda que você não use isso em seus projetos. Poder pode, mas não deve... Imagine se todas as bibliotecas que você usa fizessem esse tipo de coisa com a String... Ia virar uma bagunça!

Aprenda mais sobre a linguagem Javascript com nossos cursos de Javascript. Se preferir cursos presenciais, temos a Formação Front-End na Caelum.

Veja outros artigos sobre Front-end