javascript - 在 JavaScript 中,当 value 本身是一个对象时,如何记录对象的 {key:value} 对的值?可能有递归函数吗?
问题描述
在调试中,有时我有一个由许多键值对组成的对象,我需要查看各个对。我有以下代码可以做到这一点。
for(let [key, value] of Object.entries(params)) {
console.log('(key, value) : (' + key + ', ' + value + ')');
}
但是现在,我遇到了一个实例,其中 value 本身就是一个对象。我在日志中得到的所有价值都是[object: Object]
什么告诉我的很少。
当它是一个对象时,为了深入研究价值,我尝试了:
for(let [key0, value0] of Object.entries(params)) {
console.log('(key, value) : (' + key0 + ', ' + value0 + ')');
while(typeof value0 === 'object') {
for(let [key1, value1] of Object.entries(value0)) {
console.log('typeof val == obj: (' + key1 + ', ' + value1 + ')');
} // end for-let
} // end while
} // end for-let
但显然,我所能做的就是让计算机陷入无限循环。
也许我需要一个递归函数。我知道它们的存在是因为我一直在阅读Eloquent JavaScript (Haverbeke, Marijn, 2d ed.),但我(还没有?)精通 JavaScript 以自己找出一个。
任何人都可以帮忙吗?当它是一个对象时,我真的需要查看内部值,无论是否通过递归函数。
非常感谢您阅读本文以及您的时间和精力。
编辑:
我想我明白为什么无限循环了。我在 while 语句组中什么都不做来改变 value0 的类型,所以条件总是为真。我从不打破 while 条件。但我仍然需要一个解决方案。
解决方案
推荐阅读
- gitlab - 获取共享跑步者令牌 Gitlab API
- opengl - 什么版本的 OpenGL 着色语言相当于 OpenGL ES 3.2 SL?
- android - How can I turn on flashlight in old devices
- raku - 如何在 raku-lang 中修改矩阵
- python - 无法使用 Python 从视频文件中获取正确的 Exif 数据
- java - 例外:org.springframework.beans.factory.BeanCurrentlyInCreationException
- c# - 当我在我的游戏中使用传送门时,为什么要销毁“Camera Fallow”?
- java - Spring Web 服务删除响应字符串中的多个空格
- ruby-on-rails - 是什么让heroku响应时间太慢了
- html - CSS使卡片淡入然后在页面加载时淡出