Foros del Web » Programando para Internet » Javascript »

Problema para leer un arreglo

Estas en el tema de Problema para leer un arreglo en el foro de Javascript en Foros del Web. Hola a todos, tengo el problema de no poder leer un arreglo que genero en php y lo necesito recorren del lado del cliente. Agrego ...
  #1 (permalink)  
Antiguo 03/12/2019, 11:47
Avatar de JavierMMM  
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 15 años, 7 meses
Puntos: 0
Exclamación Problema para leer un arreglo

Hola a todos, tengo el problema de no poder leer un arreglo que genero en php y lo necesito recorren del lado del cliente. Agrego el resultado de mi arreglo:

{
16637:
6347: "2"
6348: "1"
6352: "1"
6353: "2"
6354: "1"
6355: "1"
6356: "1"
6379: "1"
25278: "1"
}
{
21653:
6347: "2"
6348: "1"
6352: "1"
6353: "2"
6354: "1"
6356: "1"
}

¿Alguna idea de como lo puedo recorrer?
__________________
__________________________________________________ ___________________________________
Las cosas más reales sólo suceden en la imaginación... Sólo recordamos, lo que nunca sucedió.
  #2 (permalink)  
Antiguo 03/12/2019, 15:59
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Problema para leer un arreglo

Hola:

Ese tipo de arreglo, asociativo se leen con un bucle for-in... investiga sobre esa estructura...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 05/12/2019, 12:39
Avatar de JavierMMM  
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problema para leer un arreglo

Gracias por tu respuesta. Estuve revisando el For-in pero no he podido encontrar la forma de obtener en el recorrido los datoos por separado. Lo hago de la siguiente forma:
Código:
for (const key in accesoActividad) {
    console.log(accesoActividad[key]);
}
Anteriormente lo hacía con un each de jquery y obtengo el mismo resultado:
Código:
$.each(accesoActividad, function(key, acceso){
    console.log(acceso);
});
en el ejemplo

{
16637:

6347: "2"

6348: "1"

6352: "1"

6353: "2"

6354: "1"

6355: "1"

6356: "1"

6379: "1"

25278: "1"

}
{
21653:

6347: "2"

6348: "1"

6352: "1"

6353: "2"

6354: "1"

6356: "1"

}
16637 y 21653 son los usuarios, 6347,6348, etc son actividades y 1 y 2 son tipos de accesos, por lo que necesito obtener los valores por separado y es lo que hasta este momento no he podido hacer. Lamentablemente no puedo obtener de diferente forma el arreglo, ya que lo consumo así como lo envían.
__________________
__________________________________________________ ___________________________________
Las cosas más reales sólo suceden en la imaginación... Sólo recordamos, lo que nunca sucedió.
  #4 (permalink)  
Antiguo 05/12/2019, 13:42
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema para leer un arreglo

Dentro de ese for necesitas otro para recorrer los valores internos.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 09/12/2019, 18:39
Avatar de JavierMMM  
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problema para leer un arreglo

He probado varias opciones pero no he podido lograr obtener los datos. Comenzando, no se cómo poder recorrer cada elemento, porque no se como acceder a cada elemento por ejemplo:

Código HTML:
{
	1: {
		44444: "2",
		4762: "1"
	},
	16637: {
		44444: "2"
	},
	21653: {
		44444: "2",
		54: "1",
		4726: "1"
	}
}
a cada elemento como 1 y después ir a cada uno de sus elementos contenidos y así sucesivamente.

Utilicé un for anidado y lo único que me resulto, pero no funcionó, fue lo siguiente:

Código HTML:
Ver original
  1. for (let value of accesoActividad) {
  2.             for (const key in value) {
  3.                 const element = value[key];
  4.                 console.log(key);
  5.                 console.log(value[key]);
  6.             }
  7.         }

y me arroja : {44444: "2",4762: "1"}
__________________
__________________________________________________ ___________________________________
Las cosas más reales sólo suceden en la imaginación... Sólo recordamos, lo que nunca sucedió.
  #6 (permalink)  
Antiguo 09/12/2019, 20:51
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años
Puntos: 120
Respuesta: Problema para leer un arreglo

tu problema es por que no estas entendiendo el Concepto de FOR IN de javascript, que no es lo mismo que un FOREACH de PHP o el FOR IN de delphi, y ellos trabajan de diferente manera

y tambien cuando se habla de JAVASCRIPT tienes que tener en Cuenta que Librerias pueden modificar el Comportamiento del FOR IN de javascript o los mismos Objectos o Array y por el cual los ejemplos o tu aplicación pueden dar error, como ejemplo esta WEB, te mando el ejemplo Funcional de lo que querias hacer

Código Javascript:
Ver original
  1. var accesoActividad={
  2.     1: {
  3.         44444: "2",
  4.         4762: "1"
  5.     },
  6.     16637: {
  7.         44444: "2"
  8.     },
  9.     21653: {
  10.         44444: "2",
  11.         54: "1",
  12.         4726: "1"
  13.     }
  14. };
  15. for (var value in accesoActividad) {
  16.     for (const key in accesoActividad[value]) {
  17.         const element = accesoActividad[value][key];
  18.         console.log(key);
  19.         console.log(accesoActividad[value][key]);
  20.     }
  21. }
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9

Etiquetas: arreglo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:00.