如何获取最里面的对象的关键点

How do you get the keys of the innermost object

本文关键字:对象 关键点 何获取 获取      更新时间:2023-09-26

我有一个对象:

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]);
    }
}

但它不会打印最里面的对象的值。我该如何处理这个问题?

function innerKeys(o) { 
  return Object.keys(o).reduce(function (r, k) { 
    return typeof o[k] === 'object' ? innerKeys(o[k]) : (r[k] = o[k], r) 
  }, {}) 
}

jsfiddle