JavaScript - indicar cuantos numeros hay repetidos en una cadena

 
Vista:

indicar cuantos numeros hay repetidos en una cadena

Publicado por daniel (3 intervenciones) el 18/01/2017 16:48:21
Hola buenas tardes tengo el siguiente codigo el cual trata de introducir una serie de numeros por ejemplo 111222333 y me diga cuantos hay repetidos listarmelos. Os pongo el codig, pot que no se lo que fall.
saludos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
"use strict";
function arraynumber() {
	var numeros = document.getElementById('nmb').value;
	var arraynumeros = numeros.split(",");
	var i = 0;
	var j = 0;
	var contador = 0;
	var repetidos = [];
	var breakpoint;
 
	if(arraynumeros.indexOf("0") != -1){
		breakpoint = arraynumeros.indexOf("0");
	}
	else {
		breakpoint = arraynumeros.length;
	}
 
 
	for (i=0; i<arraynumeros.length; i++){
		for (j=0; j<arraynumeros.length; j++){
			if (parseInt(arraynumeros[i]) == parseInt(arraynumeros[j])) {
				contador = contador + 1;
			}
		}
		if (contador > 1 && repetidos.indexOf(parseInt(arraynumeros[i])) == -1){
			repetidos.push(parseInt(arraynumeros[i]));
			document.getElementById("contador").innerHTML = ("El numero " + arraynumeros[i] + " se repite " + contador + " veces");
			contador=0;
		}
		contador=0;
	}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro
Val: 477
Bronce
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

indicar cuantos numeros hay repetidos en una cadena

Publicado por Alejandro (130 intervenciones) el 19/01/2017 04:07:42
Hola Daniel, mira probe el codigo y funciona perfecto. El ejemplo que tu das (111222333) no va a funcionar con este código ya que espera que se le pasen numeros separados por comas, eso es lo que haces con la función split dividir un string y retornar un array.

Pero si quieres que funcione de esta manera tan solo tenes que cambiar la linea 4

1
var arraynumeros = numeros.split(",");
por

1
var arraynumeros = [].slice.call(numeros);

Espero te sirva. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

indicar cuantos numeros hay repetidos en una cadena

Publicado por daniel (3 intervenciones) el 19/01/2017 16:36:03
Hola Alejandro el cambio que me has dicho me sigue haciendo lo mismo he cambiado esa linea y me sigue sin funcionar no entiendo porque..., lo que quiero es que cuando ponga por ejemplo el numero ese que he puesto que lo he puesto mal es con comas 1,1,1,2,2,2,3,3,3 me diga
El numero 1 se repite 3 veces
El numero 2 se repite 3 veces
El numero 3 se repite 3 veces
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 477
Bronce
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

indicar cuantos numeros hay repetidos en una cadena

Publicado por Alejandro (130 intervenciones) el 20/01/2017 00:54:46
Hola Daniel, modifique un poco el codigo, te dejo el html también con el cual lo probe.

index.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html lang="es">
    <head>
        <meta charset="UTF-8">
        <title>Javascript</title>
    </head>
    <body>
    	<input type="text" name="nmb" id="nmb">
        <button id="btn">Contar Numeros</button>
	<div id="result"></div>
 
        <script type="text/javascript" src="contar_repetidos.js"></script>
    </body>
</html>

contar_repetidos.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
(function() {
	"use strict";
 
	function arrayNumber() {
		var numeros = document.getElementById('nmb').value.trim();
		var result = document.getElementById("result");
		result.innerHTML = "";
		var arraynumeros = numeros.split(",");
		var contador = 0;
		var repetidos = [];
		var total_numeros = arraynumeros.length;
 
		for (var i = 0; i < total_numeros; i++) {
			for (var j = 0; j < total_numeros; j++) {
				if (parseInt(arraynumeros[i]) == parseInt(arraynumeros[j])) {
					contador++;
				}
			}
 
			if (contador > 1 && repetidos.indexOf(parseInt(arraynumeros[i])) === -1) {
				repetidos.push(parseInt(arraynumeros[i]));
				result.innerHTML += ("<p>El numero " + arraynumeros[i] + " se repite " + contador + " veces </p>");
			}
			contador = 0;
		}
 
		// array con los numero repetidos
		console.log(repetidos);
	}
 
 
	document.getElementById('btn').addEventListener('click', arrayNumber);
})();

Comentanos si te sirvio. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

indicar cuantos numeros hay repetidos en una cadena

Publicado por Daniel (3 intervenciones) el 20/01/2017 10:14:44
Muchisimas gracias, me ha servido, no se que hubiera hecho sin vuestra ayuda. Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar