Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Como diferenciar un objetos de un array?

Estas en el tema de Como diferenciar un objetos de un array? en el foro de Frameworks JS en Foros del Web. loading.......... bueno tenemos este caso Código: a={as:1,b:333} <- objeto b=document.createElement("div"); <- objeto c=window.event <- objeto x=[1,3,4,5,56] <-- array y= new Array(); y["asas"]=3214243; <-- array bueno ...
  #1 (permalink)  
Antiguo 15/10/2006, 15:42
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Como diferenciar un objetos de un array?

loading..........


bueno tenemos este caso
Código:
a={as:1,b:333}  <- objeto
b=document.createElement("div");  <- objeto
c=window.event  <- objeto

x=[1,3,4,5,56]  <-- array
y= new Array();
y["asas"]=3214243;  <-- array
bueno si haces typeof a todas esas variables te sale "object"
he tratado de diferenciarlo con

if(variable[0]) <-- si es un array, entonces devuelve true,
pero si es un array como la variable y, devuelve false... pero es un array!

Asi que nose si alguno de ustedes saber como diferenciar cada una de esas variables?

Lo que trato de hacer es un PRINt de lo que estoy haciendo y de esa forma puedo mostrar como STRING el contenido de un obhjeto o array

poero si el objeto o array tiene objetos de DOM o eventos entonces se lanza lo que quiero hacer :(

porque mis "métodos" de diferenciar cada uno de esos objetos es pobre.



connection closed.
__________________

Maborak Technologies
  #2 (permalink)  
Antiguo 16/10/2006, 04:08
Avatar de ikhuerta  
Fecha de Ingreso: octubre-2006
Mensajes: 104
Antigüedad: 17 años, 7 meses
Puntos: 0
Lo suyo es hacer una funcion que vaya analizando los distintos typeof que salgan.

En alguna ocasion he construido funciones que monten arrays filtrando solo si el tipeof era uno determinado (pero ahora no se si en javascript o en php :P)

El caso de los arrays dentro de arrays pueden comprobarse mirando si luego existe myarray[0][0] :P
  #3 (permalink)  
Antiguo 16/10/2006, 12:39
Avatar de SiR.CARAJ0DIDA  
Fecha de Ingreso: junio-2004
Ubicación: Acá
Mensajes: 1.166
Antigüedad: 19 años, 10 meses
Puntos: 4
Código:
a={as:1,b:333}  <- objeto
b=document.createElement("div");  <- objeto
c=window.event  <- objeto en IE

x=[1,3,4,5,56]  <-- array
y= new Array();
y["asas"]=3214243;  <-- array

alert(a instanceof Object);
alert(b instanceof HTMLDivElement); // no anda en IE
alert(x instanceof Array);
alert(y instanceof Array);
__________________
Internet Explorer SuckS
Download FireFox
  #4 (permalink)  
Antiguo 16/10/2006, 13:46
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
loading.....



voy a probarlo


connection closed.
__________________

Maborak Technologies
  #5 (permalink)  
Antiguo 17/10/2006, 21:34
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Una alternativa al método de Sir, auqnue me gusta más la de él...

Podés hacerlo de una manera simple, definiendo un método como prototype para los distintos tipos de objetos. Si la adjuntás a object, y después a array, esta última va a pisar la primera.

Ejemplo
Código PHP:
<html>
<
head>
    <
script type="text/javascript">
    
Object.prototype.type = function() { return "object"; }
    Array.
prototype.type = function() { return "array"; }
    
Date.prototype.type = function() { return "date"; }
    function 
getType(v) {
        if (
typeof v == "object") return v.type();
        return (
typeof v)
    }
    var 
algo = new Date();
    
alert(getType(algo));
    
</script>
</head>
<body>
</body>
</html> 
  #6 (permalink)  
Antiguo 21/10/2006, 10:51
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
loading..............



bueno eso funcioana bien pero

mis objetos no los creo como

a=new object();
b=new Array();

sinó d ela forma

a={};
b=[];


crees que funcionaria?


Ahora bien que pasa con un objeto de DOM? eso ya no puedp modificar... o un EVENT.


connection closed.
__________________

Maborak Technologies
  #7 (permalink)  
Antiguo 22/10/2006, 09:38
Avatar de SiR.CARAJ0DIDA  
Fecha de Ingreso: junio-2004
Ubicación: Acá
Mensajes: 1.166
Antigüedad: 19 años, 10 meses
Puntos: 4
HTMLDivElement.prototype.metodo = function() { alert('soy un div'); };

no le veo mucho sentido
__________________
Internet Explorer SuckS
Download FireFox
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:23.