Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/11/2014, 12:26
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: Repetición de arrays

Tendrías primero que eliminar los elementos en las cadenas de texto que no sean caracteres alfabéticos, como las comas y puntos. También podrías incluir números, pero eso ya depende de ti. Luego, descompones a las cadenas a partir de los espacios en blanco, con lo cual tendrías dos arrays y, ya teniendo esto, los recorres y buscas las coincidencias.

Un pequeño ejemplo:
Código Javascript:
Ver original
  1. function repeticiones(foo, bar){
  2.     foo = foo
  3.             .toLowerCase()
  4.             .replace(/[^a-zÑñáéíóúÁÉÍÓÚÜü]+/g, " ")
  5.             .replace(/^\s+|\s+$/g, "");
  6.     bar = bar
  7.             .toLowerCase()
  8.             .replace(/[^a-zÑñáéíóúÁÉÍÓÚÜü]+/g, " ")
  9.             .replace(/^\s+|\s+$/g, "");
  10.    
  11.     var arr1 = foo.split(" "),
  12.         arr2 = bar.split(" "),
  13.         l = arr1.length,
  14.         m = arr2.length,
  15.         c = 0;
  16.    
  17.     for (var i = 0; i < l; i++){
  18.         for (var j = 0; j < m; j++){
  19.             if (arr2[j] == arr1[i]){
  20.                 c++;   
  21.             }
  22.         }
  23.     }
  24.    
  25.     console.log("Hay " + c + " coincidencias"); //Imprimirá: Hay 7 coincidencias
  26. }
  27.  
  28. repeticiones("Hola mundo, hoy es viernes.",
  29.              "hola mundo, es viernes. Sí, hoy es viernes.");

A la función le paso las dos cadenas a comparar, las convierto a minúsculas, reemplazo los caracteres no alfabéticos por espacios en blanco y elimino los espacios en blanco que existan tanto al inicio como al final de las cadenas. Enseguida, formo los arrays, descomponiendo las cadenas a partir de los espacios en blanco existentes, calculo el total de elementos de cada array y declaro una variable que utilizaré como acumulador para obtener el total de repeticiones.

Finalmente, recorro a ambos arrays, busco las coincidencias y, de haberlas, las voy contando en la variable acumuladora, cuyo resultado imprimo luego de terminados los bucles.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand