Contenido

HashMap en Javascript

31 Oct

+ 0

Es fantástico ver gente tan buena y que encima comparte su conocimiento, esta gente de The DigitalConspiracy.net se han currado una versión en Javascript del objeto HashMap de Java.

Requiere el uso del framework prototype, y consigue realizar las mismas funciones que el objeto. Para los que no sepan de que se trata, HashMap es la versión mejorada de una matriz, un mapa, con unas cuantas diferencias. Quizas la diferencia más destacable es la posibilidad de adoptar las propiedad de otros objetos. En su esencia se trata de una HashTable pero sin sincronizar. No conozco muy bien el tema de los Mapas, no los recuerdo, pero eran sistemas muy avanzados, con algoritmos capaces de permitir crear matrices con indices alfanuméricos únicos, usando un conversión que te permitía almacenar objetos que podremos encontrar mediante un nombre.

Como funciona 

Al igual que Java, hemos de crear primero una instacia del objeto para poder usarlo, despues de haberlo creado podremos acceder a todos los métodos de la clase.


var myHM = new HashMap();
myHM.put('a', new String('This string contains A'));
myHM.put(new String('b'), new String('This string contains B'));
myHM.put('0', new String('And this string? Zero'));
window.alert(myHM.size());	// ritorna 3

// Replace
// notare che è indifferente usare un oggetto String o un valore scalare.
myHM.put('b', new Date());
if( myHM.get('b') instanceof Date )
window.alert('E\' una data');

// Remove
if( myHM.containsKey('a') && myHM.containsValue('This string contains A') )
window.alert('L\'oggetto \'A\' è presente');
myHM.remove('a');
if( myHM.containsKey('a') || myHM.containsValue('This string contains A') )
window.alert('Ooops \'A\' è ancora presente');		// Non compare

window.alert(myHM.size());	// ritorna 2

// Clear
myHM.clear();
window.alert(myHM.size());	// ritorna 0

[Descargar]

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.