如何以字符串格式显示JavaScript对象的内容,就像我们警告变量时一样?
与显示对象的格式相同。
如何以字符串格式显示JavaScript对象的内容,就像我们警告变量时一样?
与显示对象的格式相同。
当前回答
这里有一种方法:
console.log("%o", obj);
其他回答
使用此项:
console.log('print object: ' + JSON.stringify(session));
这是函数。
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)))};
它可以使用具有可读性的制表符缩进来显示对象。
编号:在这些示例中,yourObj定义了要检查的对象。
首先,我最不喜欢但最常用的显示对象的方式:
这是显示对象内容的实际方式
console.log(yourObj)
将产生如下结果:
我认为最好的解决方案是查看对象关键点,然后查看对象值,如果您真的想查看对象的内容。。。
console.log(Object.keys(yourObj));
console.log(Object.values(yourObj));
它将输出如下内容:(上图:存储在对象中的键/值)
如果您使用的是ECMAScript 2016或更高版本,还有一个新选项:
Object.keys(yourObj).forEach(e => console.log(`key=${e} value=${yourObj[e]}`));
这将产生整洁的输出:前面的回答中提到的解决方案:console.log(yourObj)显示了太多的参数,并且不是显示所需数据的最方便用户的方式。这就是为什么我建议分别记录键和值。
下一步:
console.table(yourObj)
有人在之前的评论中建议过这个,但它从来没有对我起过作用。如果它对其他人在不同的浏览器或其他东西上起作用,那就太好了!我仍将代码放在此处以供参考!将向控制台输出如下内容:
显示对象内容的一种简单方法是使用console.log,如下所示
console.log("Object contents are ", obj);
请注意,我没有使用“+”连接对象。如果我使用“+”,那么我将只得到If对象的字符串表示,类似于[Objectobject]。
假设对象obj={0:'John',1:'Foo',2:'Bar'}
打印对象的内容
for (var i in obj){
console.log(obj[i], i);
}
控制台输出(Chrome DevTools):
John 0
Foo 1
Bar 2
希望这有帮助!