我有一个对象:
var obj = {
"level1": {
"level2": {
"level3": {
"k1": "v1",
"k2": "v2",
"k3": "v3"
}
}
}
}
输出应为:
"k1": "v1",
"k2": "v2",
"k3": "v3"
我写了一个函数
function objRecursive (obj) {
for (var key in obj) {
if(obj[key] === "object") {
objRecursive(obj[key]);
}
console.log(key, ": ", obj[key]);
}
}
但它不会打印最里面的对象的值。我该如何解决这个问题?
答案 0 :(得分:1)
function innerKeys(o) {
return Object.keys(o).reduce(function (r, k) {
return typeof o[k] === 'object' ? innerKeys(o[k]) : (r[k] = o[k], r)
}, {})
}