martes, 26 de diciembre de 2006

JavaScript: inicializar arrays asociativos

Pues empezamos con JavaScript, aquí esta la imagen que se me ocurrio para los temas relacionados principalmente con este lenguaje.

Supongo que el que se haya peleado con él sabrá que se pueden inicializar arrays con varios valores en una sola línea, igual que en c, etc. Pero cuando se trata de arrays asociativos no encontre nada para hacer esto. La solución que propongo es la siguiente:

Array.prototype.initialize=function(){
 for(i=0;i<arguments.length;i++)
 this[arguments[i].split(":")[0]]=arguments[i].split(":")[1];
}
Después de hacer esto, que lo podeis dejar en una sola línea si os gusta más, solo hay que inicializar el array de la forma:
miArray.initialize("uno:ichi","dos:ni","tres:san");
Hay que tener en cuenta que se basa en que dentro del valor o del indice no puede haber dos puntos ':' ya que es éste el separador.

Si fuese necesario usar los dos puntos en el valor bastaría con modificar la función definida o modificarla para que reciba un primer (o último) parametro que indicase el caracter o caracteres separadores.
Array.prototype.initialize=function(){
 for(i=1;i<arguments.length;i++)
  this[arguments[i].split(arguments[0])[0]]=arguments[i].split(arguments[0])[1];
};

No hay comentarios: