Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] insertar palabras en array

Estas en el tema de insertar palabras en array en el foro de Javascript en Foros del Web. Hola a todos. Estoy intentando realizar una funcion que cree un array a partir de otro existente eliminando las palabras repetidas del primero. Creo que ...
  #1 (permalink)  
Antiguo 09/03/2015, 03:54
 
Fecha de Ingreso: febrero-2015
Ubicación: Alemania
Mensajes: 26
Antigüedad: 9 años, 2 meses
Puntos: 1
insertar palabras en array

Hola a todos.

Estoy intentando realizar una funcion que cree un array a partir de otro existente eliminando las palabras repetidas del primero. Creo que la funcion ha de ser algo parecido a:
Código Javascript:
Ver original
  1. <script type = "text/javascript" id = "datosejer"> //script para insertar las palabras que salen en el ejercicio
  2.     var a1 = ["Está","está","es","soy","está","es","Está","estamos","estoy","estoy","Son","son","Están","estoy","Están","estar","estás","Eres","Eres","eres","estar"];
  3.     var den = [];
  4. function orden(){
  5.     for (o = 0; o < [a1.length]; o++){
  6.         for (r = 0; r < [den.length]; r++{
  7.             if (a1[o] != den[r]){
  8.                 den.push(a1[o])
  9.                 document.write(den)
  10.             }
  11.         }
  12.     }
  13. }
  14. orden()
  15.             document.getElementById("txt").innerHTML += (den)
  16.        
  17. </script>

pero no realiza lo que yo le pido. Alguien podria explicarme porqué?

Gracias
  #2 (permalink)  
Antiguo 09/03/2015, 06:05
Avatar de garciasanchezdani  
Fecha de Ingreso: noviembre-2011
Mensajes: 429
Antigüedad: 12 años, 5 meses
Puntos: 51
Respuesta: insertar palabras en array

Hola @pvsge
La siguiente función hace lo que necesitas:

Código Javascript:
Ver original
  1. function uniq_fast(a) {
  2.     var seen = {};
  3.     var out = [];
  4.     var len = a.length;
  5.     var j = 0;
  6.     for(var i = 0; i < len; i++) {
  7.          var item = a[i];
  8.          if(seen[item] !== 1) {
  9.                seen[item] = 1;
  10.                out[j++] = item;
  11.          }
  12.     }
  13.     return out;
  14. }

Tienes una demo aquí
Espero que te sirva.
Saludos
__________________
Diseño Web Jaén
  #3 (permalink)  
Antiguo 09/03/2015, 11:39
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: insertar palabras en array

No sucede lo que buscas porque nunca logras insertar datos en el nuevo array debido a la condición que colocas para el segundo bucle. Originalmente, el nuevo array no tiene elementos, luego, si la condición del segundo bucle no se cumple, entonces, nunca logras insertar elementos en el nuevo array pues nunca logra ejecutarse el segundo bucle.

Podrías hacerlo así:

Código Javascript:
Ver original
  1. var array = ["Está","está","es","soy","está","es","Está","estamos","estoy","estoy","Son","son","Están","estoy","Están","estar","estás","Eres","Eres","eres","estar"];
  2.  
  3. function repetidos(){
  4.     for (var i = 0, l = array.length, nuevo = []; i < l; i++){
  5.         if (nuevo.indexOf(array[i]) == -1){
  6.             nuevo.push(array[i]);
  7.         }
  8.     }
  9.     return nuevo;
  10. }
  11.  
  12. document.body.innerHTML = repetidos().join(", ");

De esta manera, recorres al array original, creas uno nuevo y en cada iteración, verificas si el valor actual en la iteración se encuentra en el nuevo array; de no estar, lo insertas.

DEMO

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
  #4 (permalink)  
Antiguo 10/03/2015, 01:25
 
Fecha de Ingreso: febrero-2015
Ubicación: Alemania
Mensajes: 26
Antigüedad: 9 años, 2 meses
Puntos: 1
Respuesta: insertar palabras en array

Muchas gracias a los dos por vuestras respuestas. Estoy aprendiendo muchisimo de esta pagina. Saludos

Etiquetas: javascript+html
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 05:58.