如何在Windows环境下隐藏console.log输出的对象详情?
如何在Windows环境下隐藏console.log输出的对象详情?
兄弟,我太懂你这种烦恼了!不同系统下console.log的格式化逻辑居然不一样,Linux下只显示个ElementHandle {}就完事,Windows却把对象的所有细节都扒出来了😅。给你几个简单的办法,轻松解决这个问题:
直接输出存在状态,不打印对象本身
如果你只需要确认对象是否存在,完全不用打印整个对象,直接输出状态信息就行:console.log('PGN=======', pgn[z] ? 'ElementHandle exists' : 'ElementHandle not found');这样不管在什么系统下,输出都是干净的状态提示,完美符合你的需求。
打印对象的类型标识
要是你想保留一点对象类型的信息,又不想看详细属性,可以用Object.prototype.toString来输出类型:console.log('PGN=======', Object.prototype.toString.call(pgn[z]));输出会是
[object ElementHandle],清晰知道对象类型,又不会展开一堆冗余属性。模拟Linux下的输出样式
如果你就想和Linux下的输出一模一样,直接手动模拟那个格式就行:console.log('PGN=======', pgn[z] instanceof ElementHandle ? 'ElementHandle {}' : 'Not an ElementHandle');这样Windows下也会输出简洁的
ElementHandle {},和Linux保持一致。自定义log函数(适合频繁使用的场景)
如果你经常要打印这类对象,可以写个自定义的log函数,一劳永逸:function logElementHandle(label, obj) { if (obj instanceof ElementHandle) { console.log(label, 'ElementHandle {}'); } else { // 不是目标对象就正常打印 console.log(label, obj); } } // 用的时候直接调用 logElementHandle('PGN=======', pgn[z]);
这些方法都能帮你把Windows下的冗余输出给压下去,选个最顺手的用就行!
备注:内容来源于stack exchange,提问作者issik kul
相关产品推荐
相关产品推荐

