Foros del Web » Programando para Internet » Javascript »

contador de elementos de un array

Estas en el tema de contador de elementos de un array en el foro de Javascript en Foros del Web. Hola gente. Necesito contar cantidades de cosas que estan en una lista (xml, pero no viene al caso). Por ejemplo: platos platos vasos platos me ...
  #1 (permalink)  
Antiguo 11/03/2008, 09:51
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 20 años
Puntos: 2
contador de elementos de un array

Hola gente.

Necesito contar cantidades de cosas que estan en una lista (xml, pero no viene al caso). Por ejemplo:

platos
platos
vasos
platos

me tiene que dar:

platos : 3
vasos: 1

hasta ahora tengo esto, pero no funciona:

arrayEquipos = new array();

for ....
{
nombre= item.getElementsByTagName('nombre')[0].firstChild.data
contadorEquipos[nombre]=contadorEquipos[nombre] + 1;
}

for(var equipitos in contadorEquipos)
{
alert(contadorEquipos[equipitos]);
}

por cada vuelta del ultimo for me dice NaN

en que le estoy errando?


saludos
  #2 (permalink)  
Antiguo 11/03/2008, 10:53
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: contador de elementos de un array

Hola:

NaN es Non a Numbre (creo recordar)... y todos los contenidos de cualquier elemento en una página es texto... si tiene solo dígitos podrías hacer un typecast sencillo:

x = parseInt(elemento.fisrstChild.data)...

La verdad es que viendo el código no tengo muy claro como recoges esos datos.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 11/03/2008, 11:39
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 20 años
Puntos: 2
Re: contador de elementos de un array

Hola caricatos, gracias por la respuesta.

el dato que recojo lo uso como indice en realidad, la solución al NaN (aunque creo que un tanto desprolija) la encontré recorriendo dos veces el mismo array que contiene los elementos y armando un array vacio en donde a cada posicion le asigno 0 (cero) es decir, lo inicializo.


el código es este:

//xmlDataset es un objeto xml


Código HTML:
function actualizarContadorEquipos()
{
	var contadorEquipos=new Array();
	
		//inicializo las posiciones del vector
	for (i = 0; i < xmlDataSet.getElementsByTagName('equipo').length; i++)
	{
		var item = xmlDataSet.getElementsByTagName('equipo')[i];
		var cell = item.getElementsByTagName('nombre')[0];
		if (cell.firstChild && cell.firstChild.data)
		{
			
			var nombre = item.getElementsByTagName('nombre')[0].firstChild.data;
			
			if(!nombre == "")
			{
				contadorEquipos[nombre]=0;
			}
		}	
		
	}
	
	
	
	
	for (i = 0; i < xmlDataSet.getElementsByTagName('equipo').length; i++)
	{
		var item = xmlDataSet.getElementsByTagName('equipo')[i];
	
		var cell = item.getElementsByTagName('nombre')[0];

		//tomo los valores del xml
		if (cell.firstChild && cell.firstChild.data)
		{
			var nombre = item.getElementsByTagName('nombre')[0].firstChild.data;
			
			if(!nombre == "")
			{
			contadorEquipos[nombre]++;
			}
		}
		
		
	}	
		for(var equipitos in contadorEquipos)
		{
			alert(contadorEquipos[equipitos]);
		}

ahora al parecer ando cerca
  #4 (permalink)  
Antiguo 11/03/2008, 11:46
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 20 años
Puntos: 2
Re: contador de elementos de un array

Caricatos, muchas gracias por la respuesta, era una llave que se me habia escapado y se me anidó un for.

ahora anda perfecto.

saludos
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 02:46.