Foros del Web » Programando para Internet » Javascript »

encotrar un elemento en un array

Estas en el tema de encotrar un elemento en un array en el foro de Javascript en Foros del Web. buenas necesito crar una funcion q me permita leer un array y un dato ingresado y si el dato no existe q lo guarde en ...
  #1 (permalink)  
Antiguo 21/06/2011, 08:42
 
Fecha de Ingreso: junio-2011
Mensajes: 4
Antigüedad: 11 años, 1 mes
Puntos: 0
encotrar un elemento en un array

buenas necesito crar una funcion q me permita leer un array y un dato ingresado y si el dato no existe q lo guarde en el mismo y si existe solo siga de largo lo necesito para una validacion de in programa y la verdadq toi mui perdido cn eso

muchas gracias
  #2 (permalink)  
Antiguo 21/06/2011, 09:13
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 13 años, 9 meses
Puntos: 66
Respuesta: encotrar un elemento en un array

hola parcas,

tu función, por ejemplo, podría ser así:
-le pasas el array y el dato
-crea una variable boolean (true/false)
-haces un bucle recorriendo cada posición de tu array y comprobando si el dato pasado coincide en cada posición. si coincide con alguna posición del array cambias a true el boolean
-al terminar el bucle compruebas el boolean, y si es false añades el dato.


saludos.
  #3 (permalink)  
Antiguo 21/06/2011, 09:21
 
Fecha de Ingreso: junio-2011
Mensajes: 4
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: encotrar un elemento en un array

tengo algo asi
function enarray (vecNrs , nro) {
var retorno=true
for ( var i=0; i < vecNrs.length; i++ ) {
if ( vecNrs[i] == nro ){

i=vecNrs.length
retorno=true }
else
retorno=false}
return(retorno)

pero no toi seguro de si esta bien
  #4 (permalink)  
Antiguo 21/06/2011, 10:09
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 13 años, 9 meses
Puntos: 66
Respuesta: encotrar un elemento en un array

te la he 'tuneado' un poco:
------------------------
function enarray (vecNrs , nro)
{
var retorno=false;
for ( var i=0; i < vecNrs.length; i++ )
{
if ( vecNrs[i] == nro )
{
//i=vecNrs.length
//solo cambia a true cuando hay que añadir el dato al array
retorno=true;
}
//no se pone el else porque si la última posición no coincide te lo va a dejar a false
//y se de antes se había cambiado a true no te lo va a añadir
//else
//retorno=false
}
//return retorno;
//y ahora compruebas si hay que añadir una posición más al array
if(retorno == false) //también se puede poner--> if(!retorno)
vecNrs.push(nro);

return vecNrs;
}
----------------------------------
también le he añadido algunos comentarios, para que entiendas ciertas cosas.

a ver si te funciona, jejejeje.

saludos
  #5 (permalink)  
Antiguo 21/06/2011, 10:30
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 11 años, 3 meses
Puntos: 343
Respuesta: encotrar un elemento en un array

Código Javascript:
Ver original
  1. function add(arr, item) {
  2.     if(arr.indexOf(item) == -1) {
  3.         arr.push(item);
  4.         return false;
  5.     }
  6.     return true;
  7. }
  8.  
  9. var arr = [];
  10.  
  11. add(arr, 1);
  12. console.log(arr); // [1]
  13. add(arr, 2);
  14. console.log(arr); // [1, 2]
  15. add(arr, 2);
  16. console.log(arr); // [1, 2]
  17. add(arr, 3);
  18. console.log(arr); // [1, 2, 3]
__________________
blog | @aijoona
  #6 (permalink)  
Antiguo 21/06/2011, 10:52
 
Fecha de Ingreso: junio-2011
Mensajes: 4
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: encotrar un elemento en un array

gracias cesharp pero ahora me di cuenta q parece q mi array y variables anteriores tan vacias u.u asi q ta tendre q arreglar todo eos croe q ta todo el programa cagado pero eso ya me sirve muxas gracias ^^

editado: gracias x todo pude terminar la primera aprte del proyecto ^^ ya ingresa los datos los verifica los guarda todos muchas gracias ^^

Última edición por Parcas; 21/06/2011 a las 11:25

Etiquetas: Ninguno
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 16:51.