Función str_pad de PHP en JavaScript

Introducción a str_pad

Muchas veces se necesita rellenar un string con otro string en JavaScript, para lograr este objetivo existe una función muy útil en PHP llamada str_pad, esta función es capaz de manipular un string para que el mismo alcance una longitud determinada, de esta manera podemos hacer que un dato específico en nuestro código siempre tenga la misma longitud, por ejemplo:

echo str_pad('20', 6, '0', STR_PAD_LEFT);
echo str_pad('1', 6, '0', STR_PAD_LEFT);
echo str_pad('567', 6, '0', STR_PAD_LEFT);
echo str_pad('4589', 6, '0', STR_PAD_LEFT);

//Resultado:
//000020
//000001
//000567
//004589

Implementación de str_pad en JavaScript

Normalmente para lograr esto en JavaScript muchos siempre hemos utilizado un ciclo o bucle como el siguiente:

function str_pad(str, pad_length, pad_string, pad_type){
  	
	var len = pad_length - str.length;

	if(len < 0) return str;

	for(var i = 0; i < len; i++){

		if(pad_type == "STR_PAD_LEFT"){

			str = pad_string + str;

		}else{

			str += pad_string;

		}

	}

	return str;

}

Clase Array

Pero se puede lograr de una manera más sencilla, usando la clase Array este proceso será más rápido y no habrá necesidad de crear un bucle.

Un Array lo podemos instanciar de muchas maneras:

// Crear un array vacío
var my_array = new Array();
var my_array = [];

// Crear un array con elementos
var my_array = new Array("a", "b", "c");
var my_array = ["a", "b", "c"];

// Crear un array con una longitud determinada pero que no contiene elementos
var my_array = new Array(3);

Método join de la clase Array

Teniendo el Array instanciado podemos usar el método join para convertirlo en una cadena de texto formada por sus elementos unidos por el parámetro que se le haya enviado a dicho método:

var my_array = ["a", "b", "c"];
var my_string = my_array.join("-");
console.log(my_string);

//Resultado "a-b-c"

Snippet mejorado

Teniendo esto claro, si podemos crear un Array sin elementos de una longitud determinada después podemos acceder al método join para crear una cadena de la misma longitud que dicho Array menos uno, ya que al ser un Array sin elementos sólo tomará en cuenta el parámetro de unión.

function str_pad(str, pad_length, pad_string, pad_type){

	var len = pad_length - str.length;

	if(len < 0) return str;
  	
	var pad = new Array(len + 1).join(pad_string);
    
	if(pad_type == "STR_PAD_LEFT") return pad + str;
    
	return str + pad;

}

Uso del snippet

console.log str_pad("20", 6, "0", "STR_PAD_LEFT");
console.log str_pad("1", 6, "0", "STR_PAD_LEFT");
console.log str_pad("567", 6, "0", "STR_PAD_LEFT");
console.log str_pad("4589", 6, "0", "STR_PAD_LEFT");

//Resultado:
//000020
//000001
//000567
//004589
1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 5,00 de 5)
Comparte este artículo:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Puedes situar fragmentos de código dentro de etiquetas <pre></pre> y código HTML o XML entre etiquetas <xmp></xmp>.

Time limit is exhausted. Please reload CAPTCHA.