Ver Mensaje Individual
  #7 (permalink)  
Antiguo 18/09/2009, 07:08
Avatar de Adler
Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Contar número de elementos repetidos en array

zerokilled quiero agradecerte tu compromiso y dedicación con este problema. De nuevo no puedo darte karma, que es lo que te mereces, ya que según las normas del foro, no esparzo el suficiente.

Parece que esta mañana se me encendió la luz. Pensando en como acceder a los valores de cada elemento del objeto, me vino cantidad[arr_limpio[j]], y resulto. Aquí dejo el script por si a alguien le puede ayudar

Código javascript:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta name="http-equiv" content="Content-type: text/html; charset=UTF-8"/>
  5. <script type="text/javascript">
  6. var arr_limpio = [];
  7. var val_eliminados = [];
  8. Array.prototype.EliminarRepetidos = function () {
  9. var cantidad = {};
  10.     for(var i = 0; i < this.length; i++){
  11.         if(!(this[i] in cantidad)) {
  12.             cantidad[this[i]] = 0;
  13.             arr_limpio.push(this[i]);
  14.             cantidad[this[i]]++;
  15.         } else {
  16.             val_eliminados.push(this[i]);
  17.             cantidad[this[i]]++;
  18.         }
  19.     }
  20.  
  21. var repeticiones = "";
  22.     for (j=0; j < arr_limpio.length; j++) {
  23.         repeticiones +="El elemento " + arr_limpio[j] + " se repite ------ " + parseInt(cantidad[arr_limpio[j]]-1) +" veces\n"
  24.     }
  25.     alert("Arreglo Original: " + array.toString() + "\nArreglo Limpio: " + arr_limpio.toString() + "\nValores Eliminados: " + val_eliminados.toString() + "\nCantidad de veces que se repite cada elemento\n=======================\n" + repeticiones)
  26. }
  27.  
  28.  
  29. function ContarRepetidos(valores) {
  30. var val = valores;
  31. array = val.split('');
  32. obj = array.EliminarRepetidos();
  33. }
  34. </script>
  35. </head>
  36. <body>
  37. <a href="javascript:void(0);" onclick="ContarRepetidos('1283434536473846390');">Ver</a>
  38. </body>
  39. </html>
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />