Autor
|
Tema: convertir un array en Map en javascript (Leído 12,086 veces)
|
bengy
Desconectado
Mensajes: 501
mis virtudes y defectos son inseparables
|
quiero convertir un arreglo a Map() este arreglo lo uso para ejemplo, en este console "console.log(arrayParaMap);" sale undefined el ejemplo que uso es este //example {a:1,a:2,a:1,b:1,b:5,b:6} el map que prentendo obtener es [a,{1,2,1} b,{1,5,6}] este es mi codigo var revisados=[]; var mapita=new Map(); var fabrica =function(array){ //input array - output map for (var i = 0; i < array.length; i++) { var arreglo1=array[i].split(":"); var arrayParaMap=[]; for (var j = 0; j < array.length; j++) { var arreglo2=array[j].split(":"); if(!db(arreglo1[0])){ if(arreglo1[0]==arreglo2[0]){ arrayParaMap.push(arreglo2[2]); console.log(arrayParaMap); } } }; mapita.set(arreglo1[0],arrayParaMap); revisados.push(arreglo1[0]); }; for (var key of mapita.keys()) { console.log(key); } for (var value of mapita.values()) { // for (var i = 0; i < value.length; i++) { console.log(value); // }; } } var db=function(data){ for (var i = 0; i < revisados.length; i++) { if(revisados[i]==data){ return true; } }; return false; } //example {a:1,a:2,a:1,b:1,b:5,b:6} var arregloPrueba=["a:1","a:2","a:1","b:1","b:5","b:6"]; fabrica(arregloPrueba);
en que estoy fallando?
|
|
|
En línea
|
|
|
|
Jeferi
|
¿Te refieres a un array, verdad? Es decir: var example = [{a:1}, {a:2}, {a:3}, {b:1}, {b:2}]
Te lo comento porque un objeto: var example = {a:1,a:2,a:3,b:1,b:2}
Si muestras example resultaría {a:3,b:2}
Lo que quieres obtener es: {a:[1,2,3],b:[1,2]}
|
|
« Última modificación: 17 Septiembre 2016, 03:22 am por Jeferi »
|
En línea
|
|
|
|
bengy
Desconectado
Mensajes: 501
mis virtudes y defectos son inseparables
|
si tengo un array [{a:1}, {a:2}, {a:3}, {b:1}, {b:2}] y quiero {a:[1,2,3],b:[1,2]} // el cual es un Map
|
|
« Última modificación: 17 Septiembre 2016, 03:39 am por .rn3w. »
|
En línea
|
|
|
|
Jeferi
|
si tengo un array [{a:1}, {a:2}, {a:3}, {b:1}, {b:2}] y quiero {a:[1,2,3],b:[1,2]} // el cual es un Map Haciendo uso de los nuevos métodos para arrays de ES6 lo tienes fácil y te olvidas de tanto bucle for. (Tener en cuenta que NodeJS ya acepta más del 90% de las características de ES6) Voy a utilizar el método Array.reduce de la nueva especificación. const obj = [{a:1}, {a:2}, {a:3}, {b:1}, {b:2}]; const objMapped = obj.reduce((array, item) => { let arr = []; for (let i of Object.keys(item)) { if (!array[i]) array[i] = []; array[i].push(item[i]); return array; } }, []); console.log(objMapped);
objMapped contiene el nuevo array Te muestro el resultado en mi máquina: $ node elhacker-net.js [ a: [ 1, 2, 3 ], b: [ 1, 2 ] ]
- Edito: Hice otro ejemplo, un poco más acorde a ES6, olvidando Array.push de la línea 11 const obj = [{a:1}, {a:2}, {a:3}, {b:1}, {b:2}]; const objMapped = obj.reduce((array, item) => { let arr = []; for (let i of Object.keys(item)) { if (!array[i]) array[i] = []; array[i] = [...array[i], item[i]]; return array; } }, []); console.log(objMapped);
Para aprender más, puedes encontrar información en MDN acerca de ES6.
|
|
« Última modificación: 17 Septiembre 2016, 03:59 am por Jeferi »
|
En línea
|
|
|
|
bengy
Desconectado
Mensajes: 501
mis virtudes y defectos son inseparables
|
del primer ejemplo, todos los "let" lo cambie por var y funciono y del segundo no reconoce array = [...array, item];
|
|
|
En línea
|
|
|
|
Jeferi
|
del primer ejemplo, todos los "let" lo cambie por var y funciono
y del segundo no reconoce
Pensaba que lo ejecutabas sobre NodeJS. Fallo mío. Hay algunos navegadores que aún no reconocen la nueva sintáxis (aunque deberían). Usa el primero si el segundo no te ha funcionado.
|
|
|
En línea
|
|
|
|
bengy
Desconectado
Mensajes: 501
mis virtudes y defectos son inseparables
|
lo uso sobre nodejs, imagcual sera el problema(solo por curiosidad)
|
|
|
En línea
|
|
|
|
Jeferi
|
Ejecuta node --version y postea el resultado.
|
|
|
En línea
|
|
|
|
bengy
Desconectado
Mensajes: 501
mis virtudes y defectos son inseparables
|
la version es v4.5.0
|
|
|
En línea
|
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
convertir text box en array
Programación Visual Basic
|
GrTk
|
3
|
9,479
|
22 Abril 2007, 20:57 pm
por yovaninu
|
|
|
parse_str, convertir querystring a array
PHP
|
raul338
|
3
|
4,037
|
5 Junio 2011, 21:25 pm
por raul338
|
|
|
Convertir Array de php a Array de javascript
PHP
|
WHK
|
0
|
4,586
|
23 Enero 2012, 18:05 pm
por WHK
|
|
|
convertir cadena en array (javascript)
Desarrollo Web
|
kakashi20
|
4
|
12,755
|
27 Mayo 2012, 07:19 am
por basickdagger
|
|
|
javascript array
Scripting
|
jalbtercero
|
1
|
2,177
|
14 Febrero 2016, 01:13 am
por 0xFer
|
|