Foros del Web » Programando para Internet » Javascript »

Array Asociativo

Estas en el tema de Array Asociativo en el foro de Javascript en Foros del Web. Hola amigos, les cuento que estoy tratando de hacer lo siguiente: function arreglo(){ var $datosPersonales=new Array(); var $personalCIA=new Array(); $datosPersonales["nombre"]="Jaime"; $datosPersonales["edad"]=25; $datosPersonales["fechaIngreso"]="12/12/2005"; $personalCIA[0]=$datosPersonales; $datosPersonales["nombre"]="Pedro"; $datosPersonales["edad"]=30; ...
  #1 (permalink)  
Antiguo 05/02/2013, 15:42
nec
 
Fecha de Ingreso: diciembre-2007
Mensajes: 31
Antigüedad: 16 años, 3 meses
Puntos: 1
Pregunta Array Asociativo

Hola amigos, les cuento que estoy tratando de hacer lo siguiente:

function arreglo(){
var $datosPersonales=new Array();
var $personalCIA=new Array();

$datosPersonales["nombre"]="Jaime";
$datosPersonales["edad"]=25;
$datosPersonales["fechaIngreso"]="12/12/2005";
$personalCIA[0]=$datosPersonales;

$datosPersonales["nombre"]="Pedro";
$datosPersonales["edad"]=30;
$datosPersonales["fechaIngreso"]="01/02/2007";
$personalCIA[1]=$datosPersonales;

$datosPersonales["nombre"]="Teresa";
$datosPersonales["edad"]=20;
$datosPersonales["fechaIngreso"]="01/03/2009";
$personalCIA[2]=$datosPersonales;

$datosPersonales["nombre"]="Diana";
$datosPersonales["edad"]=31;
$datosPersonales["fechaIngreso"]="22/11/20011";
$personalCIA[3]=$datosPersonales;

for ($i=0; $i<=$personalCIA.length-1; $i+=1)
document.write( $i + "- " + $personalCIA[$i]["nombre"] + " - " + $personalCIA[$i]["edad"] + " - " + $personalCIA[$i]["fechaIngreso"] + "<br/>");

}


Pero al usar el for, sólo me muestra un dato....

y si lo intento de esta otra forma:

function arreglo()
{
var $personalCIA=new Array();
$personalCIA[0]["nombre"]="Jaime";
$personalCIA[0]["edad"]=25;
$personalCIA[0]["fechaIngreso"]="12/12/2005";

$personalCIA[1]["nombre"]="Pedro";
$personalCIA[1]["edad"]=30;
$personalCIA[1]["fechaIngreso"]="01/02/2007";

$personalCIA[2]["nombre"]="Teresa";
$personalCIA[2]["edad"]=20;
$personalCIA[2]["fechaIngreso"]="01/03/2009";


$personalCIA[3]["nombre"]="Diana";
$personalCIA[3]["edad"]=31;
$personalCIA[3]["fechaIngreso"]="22/11/20011";


for ($i=0; $i<=$personalCIA.length-1; $i+=1)
document.write( $i + "- " + $personalCIA[$i]["nombre"] + " - " + $personalCIA[$i]["edad"] + " - " + $personalCIA[$i]["fechaIngreso"] + "<br/>");

}


No funciona, en que estoy errado?

Gracias.
  #2 (permalink)  
Antiguo 05/02/2013, 16:05
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Array Asociativo

Bueno, para empezar, los arrays asociativos en js no son tales (quizá algún experto me corrija), para esto necesitas objetos, y para recorrerlos necesitas usar el for de otra forma:

Código Javascript:
Ver original
  1. var array_asoc=new Object();
  2.  
  3. array_soc['uno']='rojo';
  4. array_soc['dos']='verde';
  5. array_soc['tres']='azul';
  6.  
  7. for(var pos in array_asoc)
  8.    console.log(pos+ '  vale: '+array_asoc[pos]);

esto debería imprimir

uno vale: rojo
dos vale: verde
tres vale: azul
  #3 (permalink)  
Antiguo 07/02/2013, 13:19
nec
 
Fecha de Ingreso: diciembre-2007
Mensajes: 31
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Array Asociativo

Así como lo planteas funciona, pero cuando trato de manejar más de una dimensión ya no...
  #4 (permalink)  
Antiguo 07/02/2013, 14:12
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Array Asociativo

Imagino que no habrás creado un nuevo objeto para cada nueva dimensión:

var array_asoc=new Object();

array_asoc['uno']=new Object();

array_asoc['uno']['nombre']='juanito';

Puede acceder a los valores de dos formas:

console.log(array_asoc['uno']['nombre']);

o
conole.log()array_asoc.uno.nombre;

dependiendo de cómo lo quieras tratar.
  #5 (permalink)  
Antiguo 07/02/2013, 14:57
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 12 años, 11 meses
Puntos: 343
Respuesta: Array Asociativo

Recomiendo leer este tema: http://www.forosdelweb.com/f13/pasar...jetos-1034632/
__________________
blog | @aijoona

Etiquetas: asociativo, funcion
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 08:14.