思路就是获取对象所有的key然后判断值是否为object对象,如果是就递归查找,不是就存入哈希表
const o = {
a: 1,
b: {
c: 1,
d: {
e: 2,
f: 3,
},
g: -1,
},
}
// 遍历所有json节点
function traverseJsonAllNode(o, map = {}) {
// 获取对象所有key值
Object.keys(o).forEach((key) => {
map[key] = o[key] // 将当前key-value存入map
if (Object.prototype.toString.call(o[key]) === '[object Object]') {
traverseJsonAllNode(o[key], map) // 如果value是对象 则继续递归子集
}
})
return map
}
console.log(traverseJsonAllNode(o))
该文章介绍了一个JavaScript函数,用于遍历JSON对象的每个节点。它首先获取对象的所有键,然后将非对象类型的值存入哈希表。如果遇到值是对象的情况,函数会递归调用自身以处理子对象。最终,函数返回包含所有非嵌套值的哈希表。
1182

被折叠的 条评论
为什么被折叠?



