Por lo general, si solo usamos alert(object);
, se mostrará como [object Object]
. ¿Cómo imprimir todos los parámetros de contenido de un objeto en JavaScript?¿Imprimir contenido de objeto JavaScript?
Respuesta
Si está usando Firefox, alert(object.toSource())
debería ser suficiente para los propósitos de depuración simples.
Debería considerar usar FireBug para la depuración de JavaScript. Te permitirá interactivamente inspeccionar todas tus variables, e incluso pasar por las funciones.
Usar dir (objeto). O siempre puede descargar Firebug for Firefox (realmente útil).
dir? ¿Necesitas incluir algún archivo js especial? – cometta
solo necesita la extensión firebug –
console.dir (object) Imprime la salida en el panel de la consola de Firebug. Devuelve "_firebugIgnore", por lo que no es para usar con alert(). Documentado en http://getfirebug.com/wiki/index.php/Console_API#console.dir.28object.29 –
También puede utilizar el método Prototype Object.inspect(), que "Devuelve la representación de cadena orientada a la depuración del objeto".
Es bastante inútil para una biblioteca javascript llamarse a sí mismo después de un aspecto fundamental de un idioma. –
Si lo que desea es tener una representación de cadena de un objeto, se podría utilizar la función JSON.stringify
, utilizando un JSON library.
esta es la mejor respuesta en mi humilde opinión, funciona en todos los navegadores – cal
Además de utilizar un depurador, también puede acceder a todos los elementos de un objeto mediante un bucle foreach
. La siguiente función printObject
debe alert()
su objeto que muestre todas las propiedades y valores respectivos.
function printObject(o) {
var out = '';
for (var p in o) {
out += p + ': ' + o[p] + '\n';
}
alert(out);
}
// now test it:
var myObject = {'something': 1, 'other thing': 2};
printObject(myObject);
El uso de una herramienta de inspección DOM es preferible porque le permite excavar bajo las propiedades que son los objetos mismos. Firefox tiene FireBug, pero todos los otros navegadores principales (IE, Chrome, Safari) también tienen herramientas de depuración incorporadas que debes verificar.
Puede que quiera agregar if (o.hasOwnProperty (p)) dentro del ciclo –
Es una buena idea, pero cuando depuro, prefiero verlo todo. Quizás incluso mejor sería algo como: for (var p in o) { if (! O.hasOwnProperty (p)) out + = '(inherited)'; out + = p + ':' + o [p] + '\ n'; } –
Internet Explorer 8 tiene herramientas de desarrollador que es similar a Firebug para Firefox. Opera tiene Opera DragonFly, y Google Chrome también tiene algo llamado Herramientas de desarrollo (Shift + Ctrl + J).
aquí es más una respuesta más detallada a depurar JavaScript en IE6-8: Using the IE8 'Developer Tools' to debug earlier IE versions
Puede dar a sus objetos sus propios métodos de String en sus prototipos.
Puede usar json.js desde http://www.json.org/js.html para cambiar datos json a datos de cadena.
Esto le dará muy agradable de salida con objeto JSON con sangría:
alert(JSON.stringify(YOUR_OBJECT_HERE, null, 4));
El segundo argumento altera el contenido de la cadena antes de devolverlo. El tercer argumento especifica cuántos espacios usar como espacio en blanco para legibilidad.
+1 para soporte multiplataforma. Estandarizado en ECMAScript 5th Edition, con soporte en Firefox 3.6, Chrome (ver?), Safari 4 e IE8. FYI: El parámetro 4 es el número de espacios para cada nivel de indención. También puede ser una cadena, p. "\ t". El parámetro nulo es un marcador de posición para una función de filtrado, si desea limitar lo que se muestra. Ver: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON/stringify –
infinitamente útil en el depurador IE8 JS. –
Usando esta respuesta :) +1 –
¡Javascript para todos!
String.prototype.repeat = function(num) {
if (num < 0) {
return '';
} else {
return new Array(num + 1).join(this);
}
};
function is_defined(x) {
return typeof x !== 'undefined';
}
function is_object(x) {
return Object.prototype.toString.call(x) === "[object Object]";
}
function is_array(x) {
return Object.prototype.toString.call(x) === "[object Array]";
}
/**
* Main.
*/
function xlog(v, label) {
var tab = 0;
var rt = function() {
return ' '.repeat(tab);
};
// Log Fn
var lg = function(x) {
// Limit
if (tab > 10) return '[...]';
var r = '';
if (!is_defined(x)) {
r = '[VAR: UNDEFINED]';
} else if (x === '') {
r = '[VAR: EMPTY STRING]';
} else if (is_array(x)) {
r = '[\n';
tab++;
for (var k in x) {
r += rt() + k + ' : ' + lg(x[k]) + ',\n';
}
tab--;
r += rt() + ']';
} else if (is_object(x)) {
r = '{\n';
tab++;
for (var k in x) {
r += rt() + k + ' : ' + lg(x[k]) + ',\n';
}
tab--;
r += rt() + '}';
} else {
r = x;
}
return r;
};
// Space
document.write('\n\n');
// Log
document.write('< ' + (is_defined(label) ? (label + ' ') : '') + Object.prototype.toString.call(v) + ' >\n' + lg(v));
};
// Demo //
var o = {
'aaa' : 123,
'bbb' : 'zzzz',
'o' : {
'obj1' : 'val1',
'obj2' : 'val2',
'obj3' : [1, 3, 5, 6],
'obj4' : {
'a' : 'aaaa',
'b' : null
}
},
'a' : [ 'asd', 123, false, true ],
'func' : function() {
alert('test');
},
'fff' : false,
't' : true,
'nnn' : null
};
xlog(o, 'Object'); // With label
xlog(o); // Without label
xlog(['asd', 'bbb', 123, true], 'ARRAY Title!');
var no_definido;
xlog(no_definido, 'Undefined!');
xlog(true);
xlog('', 'Empty String');
Función simple para alertar el contenido de un objeto o una matriz.
Llamar a esta función con una matriz o cadena o un objeto que alerta el contenido.
Función
function print_r(printthis, returnoutput) {
var output = '';
if($.isArray(printthis) || typeof(printthis) == 'object') {
for(var i in printthis) {
output += i + ' : ' + print_r(printthis[i], true) + '\n';
}
}else {
output += printthis;
}
if(returnoutput && returnoutput == true) {
return output;
}else {
alert(output);
}
}
Uso
var data = [1, 2, 3, 4];
print_r(data);
Se podría Nodo de util.inspect(object) para imprimir la estructura del objeto.
Es especialmente útil cuando su objeto tiene dependencias circulares, p.
$ node
var obj = {
"name" : "John",
"surname" : "Doe"
}
obj.self_ref = obj;
util = require("util");
var obj_str = util.inspect(obj);
console.log(obj_str);
// prints { name: 'John', surname: 'Doe', self_ref: [Circular] }
Es ese caso JSON.stringify lanza una excepción: el contenido TypeError: Converting circular structure to JSON
impresión de objeto que se puede utilizar
console.log(obj_str);
se puede ver el resultado en la consola como a continuación.
Object {description: "test"}
Para la consola abierta presione F12 en el navegador chrome, encontrará la pestaña de la consola en el modo de depuración.
Me enfrenté a un problema similar, el motivo fue que utilicé ajax para obtener datos. En este caso, hice dos llamadas ajax asincrónicas. En uno solo devuelvo el string msg y lo muestro en alerta. En la segunda llamada ajax, obtengo la lista de arrays en formato json y la decodifico en js. Entonces mi segunda solicitud se usa para procesar primero y me estaba alertando del objeto.
Tan solo revise. 1. alerta debe contener cadena. 2. Si obtienes arrayList o cualquier otro Object decodifícalo.
¡Todo lo mejor!
- 1. Recursivley imprimir detalles de un objeto
- 2. Imprimir contenido DIV por JQuery
- 3. Registros de Magento imprimir contenido de matriz
- 4. objeto JavaScript para objeto JavaScript
- 5. JavaScript tipo de contenido
- 6. Imprimir varias páginas con Javascript
- 7. PHP Imprimir claves de un objeto?
- 8. utilizando JavaScript para imprimir imágenes
- 9. Imprimir desde el navegador javascript?
- 10. Imprimir el contenido del iframe en Opera y Chrome
- 11. Javascript: ¿Cómo imprimir objetos en Jrunscript?
- 12. ¿Lee el contenido de un objeto "archivo"?
- 13. ¿Hay alguna forma de imprimir todos los métodos de un objeto en javascript?
- 14. Cómo imprimir el objeto/matriz jquery
- 15. Imprimir el objeto jQuery como HTML
- 16. ¿Cómo imprimir la identificación del objeto?
- 17. ¿Cómo puedo imprimir el contenido de un solo JPanel?
- 18. ¿Cómo puedo imprimir el contenido de un hash en Perl?
- 19. JavaScript Id de objeto
- 20. Javascript "pop" de objeto
- 21. ejecutar javascript al imprimir la página
- 22. Cambio Contenido-Disposición de objeto S3 existente
- 23. Imprimir todo el contenido div con jquery printElement
- 24. JavaScript: ¿Recuperar nombres clave de un objeto?
- 25. prueba de Javascript (objeto && objeto! == "nulo" && objeto! == "indefinido")
- 26. JavaScript utilizando toString en un objeto Function para leer el contenido de texto
- 27. Cómo imprimir datos json.
- 28. Imprimir todas las propiedades ocultas de un objeto
- 29. ¿Cómo imprimir todo el tipo base de un objeto?
- 30. Obtener contenido de un DIV usando JavaScript
También es compatible con IE9 (si no antes), pero no con Chrome 17 o Safari 5. –
¿Hay una forma de hacer algo similar entre navegadores? –
En navegadores recientes, puede usar 'console.dir (object)' para volcar el contenido de un objeto a la consola de depuración (F12 en la mayoría de los navegadores). – rossipedia