如何以字符串格式显示JavaScript对象的内容,就像我们警告变量时一样?
与显示对象的格式相同。
如何以字符串格式显示JavaScript对象的内容,就像我们警告变量时一样?
与显示对象的格式相同。
当前回答
你可以使用我的功能。使用数组或字符串或对象调用此函数,以提醒内容。
作用
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);
}
}
用法
var data = [1, 2, 3, 4];
print_r(data);
其他回答
在ES2015中,使用对象文本的速记属性声明语法,您可以记录对象,同时也可以简洁地保留变量名:
console.log("bwib:", bwib, "bwab:", bwab, "bwob": bwob) // old way A
console.log({bwib: bwib, bwab: bwab, bwob: bwob}) // old way B
console.log({bwib, bwab, bwob}) // ES2015+ way
好吧,Firefox(感谢@Bojangles提供详细信息)有Object.toSource()方法,它将对象打印为JSON和function(){}。
我想,对于大多数调试目的来说,这已经足够了。
如果要使用alert打印对象,可以执行以下操作:
alert(“myObject是”+myObject.toSource());
它应该以字符串格式打印每个属性及其对应的值。
要使用Node.js打印带有颜色的完整对象,请执行以下操作:
console.dir(object, {depth: null, colors: true})
颜色当然是可选的,“depth:null”将打印整个对象。
浏览器似乎不支持这些选项。
参考文献:
https://developer.mozilla.org/en-US/docs/Web/API/Console/dir
https://nodejs.org/api/console.html#console_console_dir_obj_options
这是函数。
function printObj(obj) {
console.log((function traverse(tab, obj) {
let str = "";
if(typeof obj !== 'object') {
return obj + ',';
}
if(Array.isArray(obj)) {
return '[' + obj.map(o=>JSON.stringify(o)).join(',') + ']' + ',';
}
str = str + '{\n';
for(var p in obj) {
str = str + tab + ' ' + p + ' : ' + traverse(tab+' ', obj[p]) +'\n';
}
str = str.slice(0,-2) + str.slice(-1);
str = str + tab + '},';
return str;
}('',obj).slice(0,-1)))};
它可以使用具有可读性的制表符缩进来显示对象。