Web BizarroWeb Bizarro

Suscríbete a nuestro Newsletter

X

Únete a nuestra lista de correos para recibir semanalmente actualizaciones de nuestro contenido.

Funciones útiles en JavaScript

Funciones útiles en JavaScript 27.FEB.14

Alvaro José Rios Ch
Fundador WebBizarro

Cuando era programador de AS3 tenia una serie de librerías que solían ser un salvavidas para resolver problemas comunes y simples como manipular Strings, Números, cargar y manipular Archivos XML entre algunas cosas más, este tipo de practicas nos permite reutilizar código.

En JavaScript es un poco más difícil mantener nuestras librerías en algún archivo de utilidades ya que debemos considerar el peso y hay momentos en los que no es bueno para nosotros cargar un archivo con 30 funciones para manipular Strings cuando solo vamos a usar 3.

De todas formas es bueno tener pequeños snipets de código que nos ayuden a acelerar el trabajo y por eso quiero compartir algunos.

La primera nos permite colocar la primera letra de un String en Mayúscula.

function ucfirst(string) { 
    return string.charAt(0).toUpperCase() + string.slice(1); 
}

La siguiente es muy útil, provees un objeto, una clave y un valor y te devuelve el o los objetos que coincidan con ese arreglo de clave y valor.

function searchObjects(obj, key, val) { 
    var objects = []; 
	for (var i in obj) { 
		if (typeof obj[i] == 'object') { 
			objects = objects.concat(searchObjects(obj[i], key, val)); 
		} else if (i == key && obj[key] == val) {
            objects.push(obj); 
		}
	} 
	return objects; 
}

La siguiente es similar a la anterior pero retorna el índice del objeto en el arreglo que coincide con el id pasado como parámetro.

function getObjectIndexFromId(obj, id) {
     if (typeof obj == "object") {
		for (var i = 0; i < obj.length; i++) { 
			if (typeof obj[i] != "undefined" && 
            typeof obj[i].id != "undefined" && obj[i].id == id) { 
				return i; 
			} 
		} 
	} 
	return false; 
}

La siguiente función compara el contenido de dos objetos para ver si son iguales, no es muy común hacer esto pero puedes usarlo para saber si se ha hecho algún cambio en un formulario antes de salvarlo, no se si sea un método muy usado aunque igual lo dejo por aquí.  

function compareObjects(obj1, obj2) { 
    for (var param in obj1) { 
        if (typeof obj1[param] == 'object' && obj1[param] !== null) {
			// Si la longitud es diferente no hay nada que revisar
			if (typeof obj2[param] != "undefined" && 
				obj1[param].length != obj2[param].length) {
				return false;
			}
			// Si hay algún cambio entonces tampoco debemos 
			// continuar buscando en el resto del objeto
			if (compareObjects(obj1[param], obj2[param]) === true)
                return false;
		} else {
			// ignora el parametro $$hashKey
			if (param != "$$hashKey") {
				// Si los valores son diferentes no hay nada más que buscar
				if (obj1[param] != obj2[param]) {
					return false;
				}
			}
		}
	}
	// Una vez que se revisa todo su no hay diferencia 
	// retornamos true indicando que son iguales.
	return true; 
}

Finalmente esta función convierte las fechas devueltas por mysql y las convierte a objetos tipo Date en JavaScript .

function mysqlDateTimeToJSDate(datetime) { 
    var t = datetime.split(/[- :]/); 
	return new Date(t[0], t[1]-1, t[2], t[3], t[4], t[5]); 
}

Si tienes alguna otra función que pueda ser util para la comunidad no dudes en compartirla con nosotros.

Update: El amigo Adnan Tavárez comparte con nosotros esta función para llevar un String con números a un formato con monedas.

function toCurrency($numero) { 
    // 100000 -> 100,000
    if( $numero !== null ) 
        return $numero.replace(/\B(?=(\d{3})+(?!\d))/g, ","); 
        else return $numero; 
}