Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Re indexar un array en JavaScript

Estas en el tema de Re indexar un array en JavaScript en el foro de Javascript en Foros del Web. Hola Amigos de Foros del Web me gustaría re indexar un array en JavaScript Por Ejemplo definamos este array : @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : ...
  #1 (permalink)  
Antiguo 07/03/2013, 08:22
 
Fecha de Ingreso: octubre-2011
Ubicación: Niquitao
Mensajes: 28
Antigüedad: 12 años, 6 meses
Puntos: 0
Re indexar un array en JavaScript

Hola Amigos de Foros del Web me gustaría re indexar un array en JavaScript

Por Ejemplo definamos este array :
Código Javascript:
Ver original
  1. arreglo = {'nombre':'juana', 'apellido':'galvis', 'direccion':'Carrera 12'};

me gustaría saber si hay un método para reconocer el string o el integer de la clave y el valor con el index sin tener que usar directamente el nombre del elemento

Por Ejemplo:
El primer elemento del Array arreglo es este 'nombre' : 'juana' ,
donde 'nombre' sería el primer subelemento y 'juana' el segundo subelemento de este elemento, valga la redundancia

Entonces
Sabemos que este alert según el arreglo
Código Javascript:
Ver original
  1. alert(arreglo['nombre']); //juana
esta bien definido pero me toca especificar el nombre o clave del elemento.


Pero yo lo que necesito es basarme en la posiciones para obtener los valores deseados como por ejemplo:
Código Javascript:
Ver original
  1. /*Imprimir el string de la clave*/
  2. alert(arreglo[0][0]) //nombre
  3. alert(arreglo[0][key]) //nombre
  4.  
  5. /*Imprimir el string del valor*/
  6. alert(arreglo[0][1]) //juana
  7. alert(arreglo[0][value]) //juana

Por eso pensé en reindexar este arreglo

No sé si ya exista una función o un ciclo para lograr esto.

Cualquier ayuda la agradecería demasiado.
  #2 (permalink)  
Antiguo 07/03/2013, 16:51
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Re indexar un array en JavaScript

Lo que tenes que hacer es utilizar objetos, es practicamente lo que haces pero con algunas diferencias:

Código Javascript:
Ver original
  1. var objeto = new Object();
  2. objeto = {nombre:'juana', apellido:'galvis', direccion:'Carrera 12'};
  3.  
  4. alert(objeto.nombre);

Y si es un array de varias personas:

Código Javascript:
Ver original
  1. var arreglo = new Array();
  2.  
  3. var objeto = new Object();
  4.  
  5. objeto = {nombre:'juana', apellido:'galvis', direccion:'Carrera 12'};
  6. arreglo.push(objeto);
  7.  
  8. objeto = {nombre:'juana2', apellido:'galvis2', direccion:'Carrera 122'};
  9. arreglo.push(objeto);
  10.  
  11. alert(arreglo[0].nombre);
  12. alert(arreglo[1].nombre);
  #3 (permalink)  
Antiguo 07/03/2013, 16:52
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: Re indexar un array en JavaScript

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6.  
  7. <script type="text/javascript">
  8. //<![CDATA[
  9. var arreglo = {'nombre':'juana', 'apellido':'galvis', 'direccion':'Carrera 12'};
  10. console.log(arreglo['nombre']); //juana
  11.  
  12. for (var llave in arreglo){
  13. console.log(llave);
  14. }
  15.  
  16. for (var llave in arreglo){
  17. console.log(llave + '-'+ arreglo[llave]);
  18.  
  19.  }
  20.  
  21. //]]>
  22. </head>
  23.  
  24. </body>
  25. </html>
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 07/03/2013, 16:55
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Re indexar un array en JavaScript

No pude agregar esto, pero seria lo siguiente para ordenar:

Código Javascript:
Ver original
  1. arreglo.sort(function (a, b) {
  2.     return (a.nombre - b.nombre)
  3. })
  #5 (permalink)  
Antiguo 08/03/2013, 11:58
 
Fecha de Ingreso: octubre-2011
Ubicación: Niquitao
Mensajes: 28
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Re indexar un array en JavaScript

Hola walterdevel (Colaborador) y emprear (colaborador)
Disculpenme por no haber respondido antes,
mil gracias por su valiosa ayuda en la solución que ambos me dierón,
me ayudarón mucho y por eso decidi emplear la ayuda de ambos

Primero que todo recordemos que no puedo especificar el nombre de la clave de cada elemento del array,
por eso había pensado en indexar el arreglo por eso especifico nuevamente que no puedo hacer esto

Código Javascript:
Ver original
  1. // no me sirve especificar el nombre de la propiedad en caso de ser un objeto
  2. alert(arreglo[0].nombre)
  3. alert(arreglo[0].apellido)
  4. alert(arreglo[0].direccion)
  5.  
  6. // tampoco no me sirve especificar el nombre de la clave del elemento  al imprimir el array
  7. alert(arreglo[nombre])
  8. alert(arreglo[apellido])
  9. alert(arreglo[direccion])

Viendo la Solución que Ambos me plantearón decidí hacer lo siguiente


Código Javascript:
Ver original
  1. var arreglo = {'nombre':'juana', 'apellido':'galvis', 'direccion':'Carrera 12'};
  2. //Función que al recibir un array nos retorna un objeto el cual lleva en sus propiedades la clave y el valor
  3. returnKeyAndValue = function (data) {
  4.                 newarray='';
  5.                 campos=new Object();
  6.                 for (var value in data){
  7.                     newarray += " { "+ "'key' : '" + value +"' , 'value' : '"+data[value]+"'},";
  8.                 }
  9.                 campos ="["+newarray.slice(0, -1)+"]";
  10.                 return eval(campos);
  11.             };
  12.            
  13.         // llamo la función y la guardo en una variable
  14.         campos = returnKeyAndValue(arreglo);
  15.        
  16.         //Imprime la Clave
  17.         alert(campos[1].key); // apellido
  18.        
  19.         //Imprime el valor de la Clave     
  20.         alert(campos[1].value); //galvis

No se si ya existe esta función o hay un metodo menos complicado o extenso, pero no cerrare este tema pues ustedes dos o otra persona me pueda dar otra solución o sugerencia, yo la agradecere con mucho gusto
  #6 (permalink)  
Antiguo 08/03/2013, 14:11
 
Fecha de Ingreso: octubre-2011
Ubicación: Niquitao
Mensajes: 28
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Re indexar un array en JavaScript

Que Pena Amigos ya me di cuenta de las funciones

Código Javascript:
Ver original
  1. //Nos devuelve las claves de un Objeto
  2. Object.keys(objeto);
  3. //y
  4. for (key in objeto) {
  5.    // Hacer algo con la clave key
  6. }

ya con esto se Optimiza Codigo.
Muchas Gracias por su valiosa ayuda walterdevel (Colaborador) y emprear (colaborador).
Espero Seguier Contando con ustedes

Etiquetas: indexar
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 21:15.