values recorrer objetos objeto keys array javascript object inspect

javascript - recorrer - object.values typescript



Cómo inspeccionar objetos Javascript (8)

¿Cómo puedo inspeccionar un objeto en un cuadro de alerta? Normalmente, alertar a un objeto solo arroja el nombre de nodo:

alert(document);

Pero quiero obtener las propiedades y métodos del objeto en el cuadro de alerta. ¿Cómo puedo lograr esta funcionalidad, si es posible? ¿O hay alguna otra sugerencia?

Particularmente, estoy buscando una solución para un entorno de producción donde console.log y Firebug no están disponibles.




Esto es una estafa flagrante de la excelente respuesta de Christian. Acabo de hacerlo un poco más legible:

/** * objectInspector digs through a Javascript object * to display all its properties * * @param object - a Javascript object to inspect * @param result - a string of properties with datatypes * * @return result - the concatenated description of all object properties */ function objectInspector(object, result) { if (typeof object != "object") return "Invalid object"; if (typeof result == "undefined") result = ''''; if (result.length > 50) return "[RECURSION TOO DEEP. ABORTING.]"; var rows = []; for (var property in object) { var datatype = typeof object[property]; var tempDescription = result+''"''+property+''"''; tempDescription += '' (''+datatype+'') => ''; if (datatype == "object") tempDescription += ''object: ''+objectInspector(object[property],result+'' ''); else tempDescription += object[property]; rows.push(tempDescription); }//Close for return rows.join(result+"/n"); }//End objectInspector


Hay algunos métodos:

1. typeof tells you which one of the 6 javascript types is the object. 2. instanceof tells you if the object is an instance of another object. 3. List properties with for(var k in obj) 4. Object.getOwnPropertyNames( anObjectToInspect ) 5. Object.getPrototypeOf( anObject ) 6. anObject.hasOwnProperty(aProperty)

En un contexto de consola, a veces el .constructor o .prototype puede ser útil:

console.log(anObject.constructor ); console.log(anObject.prototype ) ;


Los bucles for - in para cada propiedad en un objeto o matriz. Puede usar esta propiedad para obtener el valor y cambiarlo.

Nota: Las propiedades privadas no están disponibles para inspección, a menos que use un "espía"; básicamente, anulas el objeto y escribes un código que crea un bucle for-in dentro del contexto del objeto.

Para en se ve como:

for (var property in object) loop();

Algunos ejemplos de código:

function xinspect(o,i){ if(typeof i==''undefined'')i=''''; if(i.length>50)return ''[MAX ITERATIONS]''; var r=[]; for(var p in o){ var t=typeof o[p]; r.push(i+''"''+p+''" (''+t+'') => ''+(t==''object'' ? ''object:''+xinspect(o[p],i+'' '') : o[p]+'''')); } return r.join(i+''/n''); } // example of use: alert(xinspect(document));

Editar: Hace un tiempo, escribí mi propio inspector, si está interesado, me complace compartirlo.

Editar 2: Bueno, escribí uno de todos modos.


Usa tu consola:

console.log(object);


Use console.dir(object) y el plugin Firebug


var str = ""; for(var k in obj) if (obj.hasOwnProperty(k)) //omit this test if you want to see built-in properties str += k + " = " + obj[k] + "/n"; alert(str);