Aprendendo uma função nova em javascript

A função escolhida foi String.prototype.padEnd().

Essa função e usada para manipular uma string, digamos que que esta trabalhando em um projeto para criar um contrato onde esse contrato e gerado automaticamente pelo sistema, e tenha um layout sempre fixo de texto, digamos 100 caracteres no máximo e que não pode haver espaços em branco para esse contrato não ser passivo de alteração. Utilizando essa função padEnd() você poderia completar os espaços sobrando com um caracter especial dessa forma veja.

    const str1 = 'Inicio do contrato';
    console.log(str1.padEnd(100, '-'));
    
    //Resultado:
    //Inicio do contrato----------------------------------------------------------------------------------

Parâmetros

  • targetLength
    • Comprimento da string resultante depois que a str1 for preenchida. Se o valor for menor ou igual a ao str1.length retornara a string atual como ela esta.
  • padString (opcional)
    • A string com qual preenche a corrente. Caso padString for muito longo para permanecer dentro de targetLength, ele será truncado: para idiomas da esquerda para a direita, a parte mais à esquerda e para idiomas da direita para a esquerda, a parte mais à direita será aplicada. O valor padrão para este parâmetro é " " ( U+0020).

Complementando, existe também String.prototype.padStart que é similar, mas como o nome diz, completa no início.

Um uso comum é formatar um número com zeros à esquerda - mas claro que antes precisa convertê-lo para string:

const valor = 10;
console.log(valor.toString().padStart(5, '0')); // 00010

Ou, usando o mesmo exemplo para comparar:

const str1 = 'Inicio do contrato';
console.log(str1.padStart(100, '-'));

//Resultado:
//----------------------------------------------------------------------------------Inicio do contrato

Um detalhe interessante é que padString não precisa ter apenas um caractere. Ela pode ter qualquer tamanho:

const str1 = 'Inicio do contrato';
console.log(str1.padStart(100, '-**--xx-'));
//-**--xx--**--xx--**--xx--**--xx--**--xx--**--xx--**--xx--**--xx--**--xx--**--xx--*Inicio do contrato

console.log(str1.padEnd(100, '-**--xx-'));
//Inicio do contrato-**--xx--**--xx--**--xx--**--xx--**--xx--**--xx--**--xx--**--xx--**--xx--**--xx--*