Foros del Web » Programando para Internet » Javascript »

Contar cuantos hay en un array lineal

Estas en el tema de Contar cuantos hay en un array lineal en el foro de Javascript en Foros del Web. Si tengo un array de la siguiente forma. var matrix = new Array¨(1,1,2,3,3,3,5,5,7,11); Cual seria el algoritmo para saber por ejemplo: tengo 2 numeros 1 ...
  #1 (permalink)  
Antiguo 22/10/2004, 08:30
 
Fecha de Ingreso: abril-2004
Mensajes: 84
Antigüedad: 20 años
Puntos: 0
Contar cuantos hay en un array lineal

Si tengo un array de la siguiente forma.
var matrix = new Array¨(1,1,2,3,3,3,5,5,7,11);
Cual seria el algoritmo para saber por ejemplo:
tengo 2 numeros 1
tengo 1 numero 2
tengo 3 numeros 3
etc...
Entonces la pregunta seria, como le hago para saber cuantos elementos de cada tipo tengo en un array.
Esta pregunta es de pura logica, pero todavia no doy con la solucion.

Gracias de antemano.
mi correo es [email protected]
  #2 (permalink)  
Antiguo 22/10/2004, 10:49
Avatar de SiR.CARAJ0DIDA  
Fecha de Ingreso: junio-2004
Ubicación: Acá
Mensajes: 1.166
Antigüedad: 19 años, 10 meses
Puntos: 4
for (i=0;i<matrix.length;i++)
{
if (matrix[i] == numero_que_quieras) contador++;
}
  #3 (permalink)  
Antiguo 28/10/2004, 08:23
 
Fecha de Ingreso: abril-2004
Mensajes: 84
Antigüedad: 20 años
Puntos: 0
Gracias SiR.CARAJ0DIDA por molestarte en resopnder.
Realmente ,mi problema no es el conteo en si, sino la forma de recorrer el vector para que me vaya contando uno a uno, los elementos que lo componen.
if (matrix[i] == vector[j]) contador++;
En dos bucles ????????
  #4 (permalink)  
Antiguo 28/10/2004, 09:26
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Hola ramiro_olvera.

Suponiendo que tu arreglo esta ordenado, yo te propondría el siguiente algoritmo:

Código PHP:
<html>
 <
head>
  <
script language="JavaScript">

   var 
aVals = new Array(11233355711);

   function 
countValues(aVals){
    var 
aRes = new Array();
    var 
nPrev aVals[0];
    var 
nCount 0;
    for (var 
0aVals.lengthi++){
     if (
aVals[i] != nPrev){
      if (
nPrev != -1)
       
aRes.push(new Array(nPrevnCount));
      
nCount 1;
      
nPrev aVals[i];
     } else 
nCount++;
    }
    
aRes.push(new Array(nPrevnCount));
    return 
aRes;
   }

  
</script>
 </head>
 <body>
  <script language="JavaScript">

    document.writeln("<table border='1'>");
    document.writeln("<tr><td colspan='2' align='center'>Valores originales</td></tr>");
    for (var i = 0; i < aVals.length; i++){
     document.writeln("<tr><td bgcolor='#cccccc'>" + i + "</td><td>" + aVals[i] + "</td></tr>");
    }
    document.writeln("</table>");
    document.writeln("<br><br><br>");
    aCount = countValues(aVals);
    document.writeln("<table border='1'>");
    document.writeln("<tr><td colspan='3' align='center'>Cuenta por valor</td></tr>");
    for (var i = 0; i < aCount.length; i++){
     document.writeln("<tr><td bgcolor='#cccccc'>" + i + "</td><td>" + aCount[i][0] + "</td><td>" + aCount[i][1] + "</td></tr>");
    }
    document.writeln("</table>");

  </script>
 </body>
</html> 
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 19:29.