Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Repetición de arrays

Estas en el tema de Repetición de arrays en el foro de Javascript en Foros del Web. Hola! Tengo una duda sobre como contar la veces que se repite un array introducido por el usuario desde el text area. Hasta ahora extraigo ...
  #1 (permalink)  
Antiguo 20/11/2014, 13:12
Avatar de Wizerol  
Fecha de Ingreso: octubre-2014
Mensajes: 35
Antigüedad: 8 años, 3 meses
Puntos: 0
Repetición de arrays

Hola! Tengo una duda sobre como contar la veces que se repite un array introducido por el usuario desde el text area.

Hasta ahora extraigo las palabras así:

Código:
var palabras = texto.value.trim().replace(sim, ' ').split(' ').length;
Como podría saber las veces que se repite una misma cadena de arrays?
  #2 (permalink)  
Antiguo 20/11/2014, 13:41
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 16 años, 6 meses
Puntos: 32
Respuesta: Repetición de arrays

Cita:
Tengo una duda sobre como contar la veces que se repite un array introducido por el usuario desde el text area.
¿Con array te refieres a cadena de texto?
Entonces entiendo que esa cadena de texto se introduce en el textarea. ¿Con qué otro texto debo compararlo para ver las veces que se repite dentro de él?

¡Un saludo!
__________________
github.com/xgbuils | npm/xgbuils
  #3 (permalink)  
Antiguo 21/11/2014, 04:41
Avatar de Wizerol  
Fecha de Ingreso: octubre-2014
Mensajes: 35
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: Repetición de arrays

Con el mismo no? Seria algo así?

Código Javascript:
Ver original
  1. var a = [texto];
  2. var b = [texto];
  3.  
  4.  
  5. for(i=0;i<a.length;i++){
  6.     for(j=0;j<b.length;j++){
  7.        if(b[j]===a[i]){
  8.        }
  9.    }
  10.  }

Pero como podría escribir las veces que se repite y implementarlo en mi código?
  #4 (permalink)  
Antiguo 21/11/2014, 12:26
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.546
Antigüedad: 11 años, 2 meses
Puntos: 972
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

Etiquetas: area, arrays, text
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 02:08.