Foros del Web » Programando para Internet » Javascript »

Como detectar un elemento en un Array?

Estas en el tema de Como detectar un elemento en un Array? en el foro de Javascript en Foros del Web. Hola a todos! Queria saber como puedo detectar un elemento de un Array. Ej.: tengo una variable p=prompt(...) y v=new Array(elemento1, elemento2 ... etc.). Como ...
  #1 (permalink)  
Antiguo 06/11/2010, 12:55
 
Fecha de Ingreso: septiembre-2010
Mensajes: 525
Antigüedad: 13 años, 7 meses
Puntos: 59
Pregunta Como detectar un elemento en un Array?

Hola a todos! Queria saber como puedo detectar un elemento de un Array. Ej.: tengo una variable p=prompt(...) y v=new Array(elemento1, elemento2 ... etc.). Como hago para que detecte si lo que escribe el usuario (variable p) esta en el Array?
He intentado hacer esto:
Código Javascript:
Ver original
  1. if(p in v){
  2.    ...
  3. }
,pero no funcciona.

Gracias!
  #2 (permalink)  
Antiguo 06/11/2010, 13:01
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Como detectar un elemento en un Array?

Podrías hacer una función para estos casos, en la que pusieras lo que quieres buscar y el array donde buscarlo, es bastante sencillo hacerlo.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 06/11/2010, 13:07
 
Fecha de Ingreso: septiembre-2010
Mensajes: 525
Antigüedad: 13 años, 7 meses
Puntos: 59
Respuesta: Como detectar un elemento en un Array?

Gracias por la respuesta; he olvidado decir que no se lo que va a contener el Array, los elementos se agregan automaticamente.
  #4 (permalink)  
Antiguo 06/11/2010, 15:07
 
Fecha de Ingreso: junio-2009
Ubicación: Madrid
Mensajes: 46
Antigüedad: 14 años, 10 meses
Puntos: 7
Respuesta: Como detectar un elemento en un Array?

JavaScript no tiene una función para eso, te la tienes que hacer tú, algo como esto:


Código Javascript:
Ver original
  1. function enArray (miArray, elemento) {
  2.  
  3.    for ( var i = 0; i < miArray.length; i++ ) {
  4.       if ( miArray[i] === elemento ) return true;
  5.       return false;
  6.   }
  7.  
  8. }
__________________
Quizá te interese mi Tutorial de JavaScript Orientado a Objetos.

Nuevo: CSS Floats: Tutorial Visual
  #5 (permalink)  
Antiguo 06/11/2010, 19:06
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Como detectar un elemento en un Array?

¿=== existe en JS? Yo diría que no. De todas maneras vale con ==.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #6 (permalink)  
Antiguo 06/11/2010, 19:09
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Como detectar un elemento en un Array?

@_cronos, ¿por que no pruebas el operador?
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 06/11/2010, 19:30
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Como detectar un elemento en un Array?

Pues sí, sí existe, pensaba que era sólo de PHP De todas formas nunca entendí muy bien la utilidad de ese operador, ¿alguna explicación sencilla? Encontré algunos ejemplos pero no son muy claros ...
Saludos :D
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #8 (permalink)  
Antiguo 06/11/2010, 19:52
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Como detectar un elemento en un Array?

el operador igualdad, puede coercer los operandos. o dicho de otra forma, el operador transforma los operandos al mismo tipo y luego realiza la evaluacion. mientras que el operador estrictamente igual ademas de evaluar el mismo valor tambien evalua el tipo de valor. por ejemplo
Código:
1 == true;
"" == false;
1 == "1";
"" == 0;
(new Number(2)) == 2;

// todas las expresiones devuelven true con ==;
// la misma expresion con el operador === devuelve false, pues no son del mismo tipo de valor;
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 06/11/2010 a las 20:09
  #9 (permalink)  
Antiguo 06/11/2010, 20:13
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Como detectar un elemento en un Array?

¿Entonces vendría a ser una manera de abreviar typeof? ¿Y por qué la última devuelve false si los dos son un número?
Saludos y gracias por la clase xD
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #10 (permalink)  
Antiguo 06/11/2010, 20:20
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Como detectar un elemento en un Array?

podria decirse que es una abreviacion de typeof, solo que hace dos funciones: valida el tipo y el valor. la ultima linea devuelve false con === porque no son el mismo tipo de dato. fijate que se esta usando el constructor Number para crear un objeto new Number, entonces estas comparando un objeto con un numero.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #11 (permalink)  
Antiguo 07/11/2010, 14:33
 
Fecha de Ingreso: septiembre-2010
Mensajes: 525
Antigüedad: 13 años, 7 meses
Puntos: 59
Pregunta Respuesta: Como detectar un elemento en un Array?

Gracias por las respuestas, he aprendido un nuevo operador ; pero se puede llamar una funcion dentro de un if?
Saludos
  #12 (permalink)  
Antiguo 07/11/2010, 14:38
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Respuesta: Como detectar un elemento en un Array?

Claro que sí.
  #13 (permalink)  
Antiguo 07/11/2010, 14:59
 
Fecha de Ingreso: septiembre-2010
Mensajes: 525
Antigüedad: 13 años, 7 meses
Puntos: 59
Pregunta Respuesta: Como detectar un elemento en un Array?

No logro hacerlo ; tengo un "juego" hecho por mi (en el que debes adivinar un numero);
Tengo:
Código Javascript:
Ver original
  1. var num=5
  2. var p=prompt(...)
  3. var v=new Array()
  4. while(p != num){
  5.         if(p < num){
  6.                 ...
  7.               v.push(p)
  8.         }
  9.         if(p > num){
  10.                 ...
  11.               v.push(p)
  12.         }
  13.      //varios if
  14.  
  15.     //y ahora quiero que si el usuario pone 2 o mas veces el mismo numero que lo diga:
  16.         if(no_se_que_poner){
  17.                ...
  18.         }     //porque no funciona if(p in v)?
  19. if(p == num){
  20.       ...
  21. }
Como tengo que hacer eso?
Saludos
  #14 (permalink)  
Antiguo 07/11/2010, 15:10
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Como detectar un elemento en un Array?

Creo que te estás complicando demasiado. Tienes la función enArray() de @PabloLPastor, con eso no tienes que hacer nada más:
Código Javascript:
Ver original
  1. var num=5;
  2. var p=prompt(...);
  3. var v=new Array();
  4. while(p != num){
  5.  if(!enArray(v,p)) v.push(p);
  6. }
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #15 (permalink)  
Antiguo 07/11/2010, 15:24
 
Fecha de Ingreso: septiembre-2010
Mensajes: 525
Antigüedad: 13 años, 7 meses
Puntos: 59
Respuesta: Como detectar un elemento en un Array?

Gracias por el consejo, pero lo que no logro hacer es que detecte si el usuario dice 2 (o mas) veces el mismo numero.
Perdonadme si soy un poco pesado, pero es que soy novato en Javascript.
Saludos

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 15:08.