Foros del Web » Programando para Internet » Jquery »

Detectar Elementos Repetidos en un Arreglo

Estas en el tema de Detectar Elementos Repetidos en un Arreglo en el foro de Jquery en Foros del Web. Hola que tal amigos como están espero que bien. Tengo este siguiente código lo que hace es guardar en un arreglo el nombre de las ...
  #1 (permalink)  
Antiguo 20/06/2013, 00:43
Avatar de vesper_metal90  
Fecha de Ingreso: enero-2013
Mensajes: 103
Antigüedad: 11 años, 9 meses
Puntos: 1
Detectar Elementos Repetidos en un Arreglo

Hola que tal amigos como están espero que bien. Tengo este siguiente código lo que hace es guardar en un arreglo el nombre de las imágenes que quieres subir tiene la opción de subir mas de una imagen a la vez.. el problema esta que si tiene el mismo nombre en algún indice del arreglo le pudiera poner por ejemplo un (1) a la imagen con el mismo nombre asi mas o menos seria

nombreArchivo[0] = "Casa.jpg" <-------Asi lo hace
nombreArchivo[1] = "Silla.jpg"
nombreArchivo[2] = "Mesa.jpg"
nombreArchivo[3] = "Casa.jpg"

nombreArchivo[0] = "Casa.jpg"
nombreArchivo[1] = "Silla.jpg"
nombreArchivo[2] = "Mesa.jpg"
nombreArchivo[3] = "Casa.jpg" <-------- Si se encuenta un valor repetido que lo pongo asi nombreArchivo[3] = "Casa(1).jpg"



Código Javascript:
Ver original
  1. $("#Cargar").click(function(){
  2.                     var NombreArchivo = $(".NombreArchivo");
  3.        
  4.                     if(NombreArchivo.text() === "" || NombreArchivo.text() === null ){
  5.                         alert("No puedes Cargar un archivo al servidor\n si no haz seleccionado uno");
  6.                         $("#Agregar").trigger("click");
  7.                         return false;
  8.                     }
  9.        
  10.                     else{
  11.                        
  12.                         var id_correspondencia = <?php echo $row['id_correspondencia']; ?>;
  13.                         var arreglo = [];
  14.                         var NombreArchivo = $(".NombreArchivo").toArray();
  15.                         for(i = 0; i < NombreArchivo.length; i++){
  16.                             arreglo.push(NombreArchivo[i]);  
  17.                         }
  18.                         var numInserciones = NombreArchivo.length;
  19.        
  20.                         for(c = 0; c < numInserciones; c++){
  21.                               alert(id_correspondencia + arreglo[c].innerHTML);
  22.                         }
  23.                     }
  24.                 });
  #2 (permalink)  
Antiguo 20/06/2013, 15:28
Avatar de Lobito14  
Fecha de Ingreso: abril-2010
Mensajes: 222
Antigüedad: 14 años, 7 meses
Puntos: 17
Respuesta: Detectar Elementos Repetidos en un Arreglo

Has probado con el inArray de jQuery?

Saludos
  #3 (permalink)  
Antiguo 20/06/2013, 21:58
Avatar de vesper_metal90  
Fecha de Ingreso: enero-2013
Mensajes: 103
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Detectar Elementos Repetidos en un Arreglo

como se haría si se encuentra un elemento repetido en el array que por ejemplo si el elemento se repitió que mandara un alert() o algo por el estilo es lo que no se muy bien como hacer...
  #4 (permalink)  
Antiguo 21/06/2013, 05:18
Avatar de Lobito14  
Fecha de Ingreso: abril-2010
Mensajes: 222
Antigüedad: 14 años, 7 meses
Puntos: 17
Respuesta: Detectar Elementos Repetidos en un Arreglo

Has leído la referencia que te he puesto, para que veas cómo funciona?

Qué es lo que no entiendes de la referencia y te lo explico.

Saludos.
  #5 (permalink)  
Antiguo 21/06/2013, 19:20
Avatar de vesper_metal90  
Fecha de Ingreso: enero-2013
Mensajes: 103
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Detectar Elementos Repetidos en un Arreglo

Ya lo logre mira aqui esta pero

Código Javascript:
Ver original
  1. <script>            
  2.             $(function(){
  3.                 /*$(".btn").attr("disabled", "disabled"); */
  4.                 if(<?php echo $row['id_correspondencia']; ?> != null ){
  5.                     $(".btn").attr("disabled",false);    
  6.                 }
  7.    
  8.                 $("#Cargar").click(function(){
  9.                     var NombreArchivo = $(".NombreArchivo");
  10.        
  11.                     if(NombreArchivo.text() === "" || NombreArchivo.text() === null ){
  12.                         alert("No puedes Cargar un archivo al servidor\n si no haz seleccionado uno");
  13.                         $("#Agregar").trigger("click");
  14.                         return false;
  15.                     }
  16.                     else{
  17.                        
  18.                         var id_correspondencia = <?php echo $row['id_correspondencia']; ?>;
  19.                         var NombreArchivo = $(".NombreArchivo").toArray();
  20.                         for(i = 0; i < NombreArchivo.length; i++){
  21.                                 alert(i+"--->"+NombreArchivo[i].innerHTML);
  22.                             for(c = i + 1; c < NombreArchivo.length;c++){
  23.                                   alert(i + "--->" + c + "------>"+NombreArchivo[i].innerHTML+"------->"+ NombreArchivo[c].innerHTML)
  24.                                  if(NombreArchivo[i].innerHTML == NombreArchivo[c].innerHTML){
  25.                                     alert(i + "--->" + c + "------>"+NombreArchivo[i].innerHTML+"------->"+ NombreArchivo[c].innerHTML)
  26.                                     alert("Se detecto Archivos con el mismo nombre\nEliminelo Antes de enviarlo al servidor");
  27.                                     return false;
  28.                                 }
  29.                             }
  30.                    
  31.                         }
  32.                        
  33.                     }
  34.                 });
  35.             });
  36.         </script>

en google Chrome si funciona pero en Firefox no funciona tu sabes porque?

Etiquetas: arreglo, elementos, repetidos
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 12:34.