Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: bengy en 25 Agosto 2016, 06:04 am



Título: hash map en javascript
Publicado por: bengy en 25 Agosto 2016, 06:04 am
este es mi codigo, pero falla, mi pregunta es como implementar hashmap en javascript
Código
  1. function Map() {
  2.  
  3.    this.keys = new Array();
  4.    this.data = new Object();
  5.    this.datos = new Array();
  6.  
  7.    this.put = function (key, value) {
  8.        if (this.data[key] == null) {
  9.            this.keys.push(key);
  10.        }
  11.        datos.push(value);
  12.        this.data[key] = datos;
  13.    };
  14.  
  15.    this.get = function (key) {
  16.        return this.data[key];
  17.    };
  18. }

quiero que cada llave tenga un arreglo de datos


Título: Re: hash map en javascript
Publicado por: flacc en 25 Agosto 2016, 19:50 pm
Hola,  javascript ya implementa Map (https://developer.mozilla.org/es/docs/Web/javascript/Referencia/Objetos_globales/Map).
El problema de la línea 11 es un problema de contextos, el clousure (función anónima) que le asignas a this.put en la línea 7 no comparte el contexto que Map, si bien Java Script funciona con objetos, estos se crean a partir de prototipos, no de clases.

El tema de los clousures los trata en detalle la biblioteca de Mozilla (https://developer.mozilla.org/es/docs/Web/javascript/Closures).

La solución por tanto es llamar con this. a la variable datos en las líneas 11 y 12.

Saludos


Título: Re: hash map en javascript
Publicado por: bengy en 25 Agosto 2016, 20:39 pm
la clase de javascript Map no permite para tener de valor un arreglo o si?
lo que pretendo hacer es hashMap<String,ArrayList<String>> en java

muchas gracias por ayudarme
saludos...


Título: Re: hash map en javascript
Publicado por: ivancea96 en 25 Agosto 2016, 20:41 pm
Lo que buscas, es un objeto, sin más.
Código
  1. var obj = {};
  2. obj.hola = "asd";
  3. console.log(ob.hola);
  4. console.log(obj["hola"]);

Son pares cadena-valor. El valor, puedes se run array, objeto o lo que quieras.
(http://i1336.photobucket.com/albums/o646/alejrod872/Curso%20JavaScript/CU01112E_1_zpsae83637c.png?t=1396371889)


Título: Re: hash map en javascript
Publicado por: bengy en 25 Agosto 2016, 21:18 pm
listo gracias, pense que tenia que implementarlo desde cero el hashmap, ahora solo lo usare, gracias

saludos...