Skip to content

Instantly share code, notes, and snippets.

document.documentElement.childNodes[0].innerHTML = '';
var pres = document.getElementsByTagName('PRE');
for(var j = 0, len = pres.length; j<len;j++) {
var sty= pres[j].style;
sty.border='1px solid black';
sty.padding='8px';
sty.marginLeft='32px';
}
var df = document.createDocumentFragment();
@joseanpg
joseanpg / regex_vocalizeitor.js
Created August 16, 2011 16:51
GEJS Vocales (Con RegEx)
// FUNCIONES AUXILIARES
/*
* La siguiente función cuenta las propiedades
* (tanto propias como hereradas) de un objeto
*/
function contarPropiedades(obj) {
var recuento = 0;
for (propiedad in obj) recuento ++;
@joseanpg
joseanpg / dangerZone.js
Created August 19, 2011 09:21
Asignación por defecto mediante || (GEJS tercera reunión)
/*
* El siguiente patrón
*
* function foo(param) {
* param = param || valor_por_defecto
* ...
*
* no representa ningún riesgo de cara al rendimiento.
*
* Con ECMAScript 5 tenemos la posibilidad
@joseanpg
joseanpg / memorizaParametro.js
Created August 21, 2011 09:22
GEJS-4 memorizaParametro
Function.prototype.memorizaParametro = function(parametro) {
var funcionSobreLaQueSeEjecuto_memorizaParametro = this;
return function() {
var argsArray = Array.prototype.slice.call(arguments,1); //Menos el primero
argsArray.unshift(parametro);
return funcionSobreLaQueSeEjecuto_memorizaParametro.apply(this,argsArray);
}
}
//Primer ejemplo: uso puramente funcional
@joseanpg
joseanpg / memorizaParametro_partial.js
Created August 21, 2011 09:35
GEJS-4 memorizaParametro (aplicación parcial)
Function.prototype.memorizaParametro = function(parametro) {
var funcionSobreLaQueSeEjecuto_memorizaParametro = this;
return function() {
var argsArray = Array.prototype.slice.call(arguments,0);//Convertimos en array
argsArray.unshift(parametro);
return funcionSobreLaQueSeEjecuto_memorizaParametro.apply(this,argsArray);
}
}
//Primer ejemplo: uso puramente funcional
//Imperative
var checkAccessor1 = function(accesor) {
var steps = accesor.split('.');
var cursor = steps[0];
var acumulator = cursor;
for (var j=1, len = steps.length;j<len;j++) {
cursor += '.' + steps[j];
acumulator += ' && ' + cursor;
}
@joseanpg
joseanpg / crearSaludo_version_incorrecta.js
Created August 21, 2011 18:42
GEJS-4 crearSaludos.js Versión (deliberadamente) incorrecta
function crearSaludo(array) {
var resultado = [];
for (var j=0, len = array.length; j<len; j++) {
var nombre = array[j];
resultado.push(function(){
console.log("Hola " + nombre);
});
}
return resultado;
}
@joseanpg
joseanpg / crearSaludos.js
Created August 21, 2011 19:41
GEJS-4 crearSaludos.js Soluciones
/*********************************************************************
Solución funcional
La más elegante, y ahora todos sabemos ;)
*********************************************************************/
function crearSaludos1(array) {
return array.map(function(nombre){
function getMax(a,b) {
var r = Math.sqrt(a-b);
if (isNaN(r)) return b;
else return a;
}
@joseanpg
joseanpg / gejs5.3reconteitor.js
Created September 1, 2011 12:50
GEJS 5.3 Recuento de votos
/*
RECUENTO DE VOTOS PARA
http://www.meetup.com/madridjs/pages/Votaci%F3n_para_%22Yo_tambi%E9n_quiero_una_birra%22/
Abre la consola, pega el siguiente código en ella
y ejecuta el siguiente código :)
Verficado en Firefox a las 14:46 del 2011-09-01
*/