Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Contar los valores repetidos en un array

Estas en el tema de Contar los valores repetidos en un array en el foro de Javascript en Foros del Web. Hola a tod@s, tengo un problema que no sé como resolverlo. El ejercicio es el siguiente. 1. Quiero que la gente introduzca una frase a ...
  #1 (permalink)  
Antiguo 31/10/2013, 12:52
Avatar de sergi_multimedia  
Fecha de Ingreso: noviembre-2010
Mensajes: 213
Antigüedad: 13 años, 5 meses
Puntos: 4
Exclamación Contar los valores repetidos en un array

Hola a tod@s, tengo un problema que no sé como resolverlo. El ejercicio es el siguiente.

1. Quiero que la gente introduzca una frase a través de un prompt --> HECHO
2. Quiero ese string se convierta en un array, cada caracter tiene una posición en el array. HECHO
3. Quiero contar las veces que sale repetido un carácter. PROBLEMAS!

Es decir, que si introducen este string en el prompt:

"Me llamo Sergi"

En en otras variables o en la creación de otro array me diga lo siguiente:
m=2;
e=2;
l=2;
a=1;
o=1;
s=1;
r=1;
g=1;
i=1;

Me estoy volviendo loco con el ejercicio, alguna ayuda?

Código Javascript:
Ver original
  1. //Introducimos el String
  2. var texto = prompt("Escribe un texto", "");
  3.  
  4.  
  5. //Convertimos el String en un array donde almacenamos en cada posición cada uno de los caracteres
  6. function textoToArray(texto){
  7.     var textoArray = new Array(texto);
  8.     for(i=0; i < texto.length; i++){
  9.         textoArray[i] = texto.charAt(i);
  10.     }
  11.     return textoArray;
  12. }

Una vez ya tengo el array con cada uno de los caracteres en cada posición...¿Cómo hago para contar los valores repetidos?

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 31/10/2013, 15:22
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Contar los valores repetidos en un array

prueba con este
Cita:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="http-equiv" content="Content-type: text/html; charset=UTF-8"/>
<script type="text/javascript">
Array.prototype.EliminarRepetidos = function () {
var arr_limpio = [];
var val_eliminados = [];
var cantidad = {};
for(var i = 0; i < this.length; i++){
if(!(this[i] in cantidad)) {
cantidad[this[i]] = 0;
arr_limpio.push(this[i]);
cantidad[this[i]]++;
} else {
val_eliminados.push(this[i]);
cantidad[this[i]]++;
}
}

var repeticiones = "";
for (j=0; j < arr_limpio.length; j++) {
repeticiones +="El elemento " + arr_limpio[j] + " se repite ------ " + parseInt(cantidad[arr_limpio[j]]-1) +" veces\n"
}
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)
}


function ContarRepetidos() {
var array1 = [1,2,3,4,5,6,7,8,9,0];
var array2 = [1,3,5,7,9];
var valores = array1.concat(array2);
for (i=0; i < valores.length; i++) {
cadena = valores.join('');
}
array = cadena.split('');
obj = array.EliminarRepetidos();
}


function ContarRepetidos2(valores) {
var val = valores;
array = val.split('');
obj = array.EliminarRepetidos();
}
</script>
</head>
<body>
<h1>Se Eliminan elementos repetidos.<br/>
Se cuenta el número de veces que se repite cada elemento</h1>
<a href="javascript:void(0);" onclick="ContarRepetidos();">Ver</a><br />
<a href="javascript:void(0);" onclick="ContarRepetidos2('1283434536473846390');" >Ver</a>
</body>
</html>
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 31/10/2013, 16:56
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Contar los valores repetidos en un array

http://jsfiddle.net/2KVjX/

Código Javascript:
Ver original
  1. function cuentaLetras(txt){
  2.     txt=txt.toLowerCase();
  3.     var arr={};
  4.     var n = texto.length;
  5.     for(i=0; i < n; i++){
  6.         var char=txt.charAt(i);
  7.         if (char==" ") continue;
  8.         if (arr[char]) arr[char]++
  9.         else arr[char]=1;
  10.     }
  11.     return arr;
  12. }
  13. function objetoACadena(arr){
  14.     var cadena=[];
  15.     for (var k in arr)
  16.     {
  17.         cadena.push(k+"="+arr[k]);
  18.     }
  19.     return cadena.join("; ");
  20. }
  21. var texto = prompt("Escribe un texto", "");
  22. var contador=cuentaLetras(texto);
  23. alert(objetoACadena(contador));
  #4 (permalink)  
Antiguo 03/11/2013, 10:14
Avatar de sergi_multimedia  
Fecha de Ingreso: noviembre-2010
Mensajes: 213
Antigüedad: 13 años, 5 meses
Puntos: 4
Respuesta: Contar los valores repetidos en un array

Gracias por las respuestas, me ha servido mucho, ya lo tengo solucionado! ;)

Etiquetas: repetidos, variable
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 13:04.