Título: convertir un array en Map en javascript Publicado por: bengy en 17 Septiembre 2016, 03:08 am 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 Código
en que estoy fallando? Título: Re: convertir un array en Map en javascript Publicado por: Jeferi en 17 Septiembre 2016, 03:17 am ¿Te refieres a un array, verdad?
Es decir: Código
Te lo comento porque un objeto: Código Si muestras example resultaría Código
Lo que quieres obtener es: Código
Título: Re: convertir un array en Map en javascript Publicado por: bengy en 17 Septiembre 2016, 03:37 am si tengo un array
Código: [{a:1}, {a:2}, {a:3}, {b:1}, {b:2}] Código: {a:[1,2,3],b:[1,2]} // el cual es un Map Título: Re: convertir un array en Map en javascript Publicado por: Jeferi en 17 Septiembre 2016, 03:52 am si tengo un array Código: [{a:1}, {a:2}, {a:3}, {b:1}, {b:2}] Código: {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. Código
objMapped contiene el nuevo array Te muestro el resultado en mi máquina: Código
- Edito: Hice otro ejemplo, un poco más acorde a ES6, olvidando Array.push de la línea 11 Código
Para aprender más, puedes encontrar información en MDN (https://developer.mozilla.org/es/) acerca de ES6. Título: Re: convertir un array en Map en javascript Publicado por: bengy en 17 Septiembre 2016, 04:02 am del primer ejemplo, todos los "let" lo cambie por var y funciono
y del segundo no reconoce Citar array = [...array, item]; Título: Re: convertir un array en Map en javascript Publicado por: Jeferi en 17 Septiembre 2016, 04:09 am 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. Título: Re: convertir un array en Map en javascript Publicado por: bengy en 17 Septiembre 2016, 04:14 am lo uso sobre nodejs, (https://s16.postimg.org/sof8ac9qd/Sin_t_tulo.png) (https://postimg.org/image/euqvlah4x/)imag (https://postimage.org/index.php?lang=spanish)
cual sera el problema(solo por curiosidad) Título: Re: convertir un array en Map en javascript Publicado por: Jeferi en 17 Septiembre 2016, 04:16 am Ejecuta node --version y postea el resultado.
Título: Re: convertir un array en Map en javascript Publicado por: bengy en 17 Septiembre 2016, 04:19 am la version es v4.5.0
Título: Re: convertir un array en Map en javascript Publicado por: Jeferi en 17 Septiembre 2016, 04:24 am la version es v4.5.0 Claro. Fíjate que la versión 4.5.0 de Node no soporta "spread operator (...)" (https://s17.postimg.org/cat50ntcf/img.png) Fuente: https://kangax.github.io/compat-table/es6/ Actualiza a la versión 6 si no es un problema para tí. Título: Re: convertir un array en Map en javascript Publicado por: bengy en 17 Septiembre 2016, 04:26 am gracias, ya vere si lo actualizo y si no tengo algun problema luego de hacerlo
:laugh: :laugh: :laugh: Título: Re: convertir un array en Map en javascript Publicado por: bengy en 17 Septiembre 2016, 15:19 pm si en vez de esto:
Citar [{a:1}, {a:2}, {a:3}, {b:1}, {b:2}] tengo : Código: function claves(id, time) { Código: key_cadaTecla.push(new claves(event.keyCode,tiempoPulsacion)); es decir tendria Código: [ObjetoClaves(a:1),ObjetoClaves(a:2), ObjetoClaves(a:3), ObjetoClaves(b:1), ObjetoClaves(b:2)] Citar 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) array = []; array.push(item); return array; } }, []); console.log(objMapped); intente modificar el codigo pero no funciona Título: Re: convertir un array en Map en javascript Publicado por: Jeferi en 17 Septiembre 2016, 16:37 pm tengo : Código: function claves(id, time) { Código: key_cadaTecla.push(new claves(event.keyCode,tiempoPulsacion)); Tendrías: Código
Para este objeto debes modificar el código a: Código
Título: Re: convertir un array en Map en javascript Publicado por: MinusFour en 17 Septiembre 2016, 20:26 pm Tendrías: Código
Para este objeto debes modificar el código a: Se espera un objeto y no un arrreglo al final creo yo. Código
Título: Re: convertir un array en Map en javascript Publicado por: Jeferi en 17 Septiembre 2016, 21:55 pm Se espera un objeto y no un arrreglo al final creo yo. Sí .Debe inicializar un objeto y no un array, en el initialValue de reduce (último parámetro) Título: Re: convertir un array en Map en javascript Publicado por: bengy en 19 Septiembre 2016, 05:41 am he instalado la ultima version de nodejs y mi proyecto dejo de funcionar
sale este error Node v6.3 return process.dlopen(module, path._makeLong(filename)); que hago? bueno tuve que crear otro proyecto y copie las dependencias del archivo package.json de mi anterior proyecto y luego le di "npm install", pero instalo muchas cosas que no pedi, entre ellas las que necesito, pero hay muchos modulos que no utilizare miren aca una foto (https://s10.postimg.org/w6utcwudl/Sin_t_tulo.png) (https://postimg.org/image/lwsedo4hx/)subefotos (https://postimage.org/index.php?lang=spanish) es normal? ahora tengo otra pregunta mas, el codigo que postearon funciona para este array: Citar [{id: a, time: 1}, {id: a, time: 2}, {id: b, time: 1}] yo necesito para este array Código: [{"id":65,"time":98},{"id":83,"time":170}] cuando intento acoplar la funcion con el array de arriba no funciona asi: Código el codigo: Título: Re: convertir un array en Map en javascript Publicado por: bengy en 19 Septiembre 2016, 17:26 pm no funcionara ? no se podra refactorizar? por mas que intento no funciona
Título: Re: convertir un array en Map en javascript Publicado por: MinusFour en 19 Septiembre 2016, 17:45 pm Lo mas probable es que quieras que fabricar regrese el arreglo mapeado y no solo hacer el console.log.
Título: Re: convertir un array en Map en javascript Publicado por: bengy en 19 Septiembre 2016, 18:06 pm si porque necesito el Map, pero quiero ir por pasos, primero me conformaria solo con el console.log
gracias y saludos... Título: Re: convertir un array en Map en javascript Publicado por: MinusFour en 19 Septiembre 2016, 18:54 pm A mi me funciona tal cual. Tu arreglo probablemente no sea ese o no estes usando el modulo correctamente.
Título: Re: convertir un array en Map en javascript Publicado por: bengy en 19 Septiembre 2016, 19:31 pm si tienes razon la funcion esta bien, el problema es la exportacion e importacion de la funcion, mira en el app estoy importando el archivo fabrica asi:
Código: var ror2 = require('./node_modules/node-svm/sample/fabrica'); y lo uso asi Código: app.post('/servidor', function(req,res){ mi archivo fabrica tiene la funcion de arriba Código
el array que mando se muestra y luego falla , hasta "console.log(obj);// muestra el array que mando" todo bien. Título: Re: convertir un array en Map en javascript Publicado por: bengy en 20 Septiembre 2016, 02:32 am aqui no entra, lo puse un console.log en medio de esa funcion y no muestra nada
Código: const objMapped = obj.reduce((acc, item) => { Título: Re: convertir un array en Map en javascript Publicado por: MinusFour en 20 Septiembre 2016, 03:58 am ¿Cual es el error exactamente? Lo único que se me ocurre es que estes haciendo algo como:
Código
Título: Re: convertir un array en Map en javascript Publicado por: bengy en 20 Septiembre 2016, 05:24 am no se cual sea el error, y si estoy haciendo "exports.fabricar = fabricar;" pero cuando envio desde el archivo principal llamado app.js llega y lo muestro
Código: var fabricar=function(obj){ pero esta parte ya no termina Código: const objMapped = obj.reduce((acc, item) => { pero cuando lo mando un array estatico por ejemplo asi: Código: ror2.fabricar([{"id":65,"time":98},{"id":83,"time":170}]); Título: Re: convertir un array en Map en javascript Publicado por: bengy en 20 Septiembre 2016, 06:25 am encontre el error, no estoy enviando array. me explico, lo estoy pasando desde ajax asi:data: { fact: JSON.stringify(key_cadaTecla)}, y ahi deja de ser array se convierte .json, mi pregunta es como convertirlo en array?, modificando, lo solucione asi var json = '{"0":"1","1":"2","2":"3","3":"4"}'; var parsed = JSON.parse(json); var arr = []; for(var x in parsed){ arr.push(parsed
Título: Re: convertir un array en Map en javascript Publicado por: MinusFour en 20 Septiembre 2016, 15:17 pm Lo ideal es que envies con el contentType: "application/json" y tengas un parser para express (como body-parser). Así el string es convertido a un arreglo.
Título: Re: convertir un array en Map en javascript Publicado por: bengy en 20 Septiembre 2016, 16:02 pm lo probare gracias!!!
y luego comento si funciono!!! estas en lo correcto si funciona!!! ahora tengo otra pregunta como recorro/iterar el objeto ? Citar const obj = [{id: 'a', time: 1}, {id: 'a', time: 2}, {id: 'b', time: 1}]; const objMapped = obj.reduce((acc, item) => { let { id, time } = item; acc[id] = acc[id] || []; acc[id].push(time); return acc; }, {}); console.log(objMapped); vi que se puede iterar por sus keys: Código: Object.keys(obj).forEach(key => { |