每次我在控制台中查看一个对象,我都想要展开它,所以每次都必须单击箭头来执行此操作会很烦人:) 是否有快捷方式或设置可以自动完成此操作?
虽然提到的解决方案JSON.stringify在大多数情况下都非常好,但它有一些限制
JSON.stringify
console.log
这是一个通过创造性地(ab)使用解决上述两个问题的解决方案console.group:
console.group
function expandedLog(item, maxDepth = 100, depth = 0){ if (depth > maxDepth ) { console.log(item); return; } if (typeof item === 'object' && item !== null) { Object.entries(item).forEach(([key, value]) => { console.group(key + ' : ' +(typeof value)); expandedLog(value, maxDepth, depth + 1); console.groupEnd(); }); } else { console.log(item); } }
现在运行:
expandedLog({ "glossary": { "title": "example glossary", "GlossDiv": { "title": "S", "GlossList": { "GlossEntry": { "ID": "SGML", "SortAs": "SGML", "GlossTerm": "Standard Generalized Markup Language", "Acronym": "SGML", "Abbrev": "ISO 8879:1986", "GlossDef": { "para": "A meta-markup language, used to create markup languages such as DocBook.", "GlossSeeAlso": ["GML", "XML"] }, "GlossSee": "markup" } } } } })
会给你类似的东西:
的值maxDepth可以调整到所需的级别,超出该级别的嵌套 - 扩展日志将回退到通常的 console.log
maxDepth
尝试运行类似的东西:
x = { a: 10, b: 20 } x.x = x expandedLog(x)
另请注意,这console.group是非标准的。