Foros del Web » Programando para Internet » Javascript »

Llenar array dinamico y modificar valores

Estas en el tema de Llenar array dinamico y modificar valores en el foro de Javascript en Foros del Web. Hola, necesito hacer los siguiente: una vez creado el array necesito llenarlo dinamicamente con nombres propios de personas, teniendo en cuenta que antes de añadir ...
  #1 (permalink)  
Antiguo 16/03/2016, 12:35
 
Fecha de Ingreso: abril-2010
Mensajes: 96
Antigüedad: 14 años
Puntos: 0
Llenar array dinamico y modificar valores

Hola, necesito hacer los siguiente:

una vez creado el array necesito llenarlo dinamicamente con nombres propios de personas, teniendo en cuenta que antes de añadir un nombre al array necesito saber si está o no esta. Si esta le sumo uno y si no esta lo creo.

pedro 3
alfonso 14
roberto 11
marta 15
angel 26
patricia
carlos 1
javier 5
mario 7

Se me ocurre algo asi.....

Código:
		var miarray =[];
nombre = 'aqui el valor es dinamico para ir llenando miarray';
if (miarray .indexOf(nombre)){
	
	// incremento en 1 el nombre existente dentro del array
	
	}
	else
	{
	miarray.push = nombre;	
		}
  #2 (permalink)  
Antiguo 16/03/2016, 13:13
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Llenar array dinamico y modificar valores

Creo que te conviene trabajar con un objeto literal, de tal forma que los nombres serían los atributos, mientras que la cantidad de veces que cada uno se repite, serían los valores.

Un ejemplo:
Código Javascript:
Ver original
  1. var nombres = {};
  2.  
  3. if (nuevoNombre in nombres){
  4.     nombres[nuevoNombre]++;
  5. }
  6. else{
  7.     nombres[nuevoNombre] = 1;
  8. }

De esta forma, si el nuevo nombre a insertar es un atributo del objeto, quiere decir que ya existe, por lo tanto, incrementamos su valor en uno; caso contrario, es decir, si se trata de un nombre inexistente en el objeto, lo adherimos al mismo como atributo y le asignamos el valor inicial 1.

DEMO

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 17/03/2016, 06:44
 
Fecha de Ingreso: abril-2010
Mensajes: 96
Antigüedad: 14 años
Puntos: 0
Respuesta: Llenar array dinamico y modificar valores

Cita:
Iniciado por Alexis88 Ver Mensaje
Creo que te conviene trabajar con un objeto literal, de tal forma que los nombres serían los atributos, mientras que la cantidad de veces que cada uno se repite, serían los valores.

Un ejemplo:
Código Javascript:
Ver original
  1. var nombres = {};
  2.  
  3. if (nuevoNombre in nombres){
  4.     nombres[nuevoNombre]++;
  5. }
  6. else{
  7.     nombres[nuevoNombre] = 1;
  8. }

De esta forma, si el nuevo nombre a insertar es un atributo del objeto, quiere decir que ya existe, por lo tanto, incrementamos su valor en uno; caso contrario, es decir, si se trata de un nombre inexistente en el objeto, lo adherimos al mismo como atributo y le asignamos el valor inicial 1.

DEMO

Un saludo

Como se pueden mostrar los resultados ? cuando intento imprimir genera esto Error object. ??

Gracias
  #4 (permalink)  
Antiguo 17/03/2016, 09:32
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Llenar array dinamico y modificar valores

Si los quieres mostrar en el documento, por ejemplo, en un párrafo (<p>), solo necesitarías utilizar la sentencia for...in para recorrer al objeto:
Código Javascript:
Ver original
  1. var parrafo = document.querySelector("#id del párrafo");
  2. for (var propiedad in nombres){
  3.     parrafo.innerHTML += propiedad + ": " + nombres[propiedad] + "<br />";
  4. }

Obteniendo un resultado similar al siguiente:
Código HTML:
Ver original
  1. <p>
  2.     nombreX: 4
  3.     nombreJ: 2
  4.     nombreY: 8
  5.     ...
  6. </p>

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: dinamico, modificar, valor
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:59.