如何以字符串格式显示JavaScript对象的内容,就像我们警告变量时一样?
与显示对象的格式相同。
如何以字符串格式显示JavaScript对象的内容,就像我们警告变量时一样?
与显示对象的格式相同。
当前回答
您还可以使用ES6模板文本概念以字符串格式显示JavaScript对象的内容。
alert(`${JSON.stringify(obj)}`);
常量对象={“name”:“John Doe”,“habbits”:“没有”,};警报(`${JSON.stringify(obj)}`);
其他回答
好吧,Firefox(感谢@Bojangles提供详细信息)有Object.toSource()方法,它将对象打印为JSON和function(){}。
我想,对于大多数调试目的来说,这已经足够了。
您还可以使用ES6模板文本概念以字符串格式显示JavaScript对象的内容。
alert(`${JSON.stringify(obj)}`);
常量对象={“name”:“John Doe”,“habbits”:“没有”,};警报(`${JSON.stringify(obj)}`);
最简单的答案
我很惊讶,这没有一个更简单的答案,只是一群人重复着完全相同的2件事,还有一些人用不可读的代码。。。
干得好。如果您只需要将对象作为字符串(无嵌套级别):
function prettyStringifyObject(obj: Record < any, any > ) {
let result = ''
for (const key in obj) {
result = `${result}${result !== '' ? ', ' : ''}${key}: ${Array.isArray(obj[key]) ? `[${obj[key]}]` : obj[key]}`
}
return `{${result}}`
}
测验
使用测试
const someTestObject = {
data: [1, 2, 3, "4"],
aString: "awdasdyhblhyb",
aBoolean: true,
aNumber: 50,
aNull: null
aNestedObject: {
someOtherData: [],
isNested: true
}
}
console.log(prettyStringifyObject(someTestObject))
结果:
"{data: [1,2,3,4], aString: awdasdyhblhyb, aBoolean: true, aNumber: 50, aNull: null, aNestedObject: [object Object]}"
你可以看看我在这里做的JSFiddle
我总是使用console.log(“对象将是:”,obj,obj1)。这样我就不需要用JSON来解决字符串问题。对象的所有财产都将很好地展开。
假设对象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
希望这有帮助!