你如何获得最里面的对象的键

时间:2015-07-23 02:01:17

标签: javascript object nested

我有一个对象:

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

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

1 个答案:

答案 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) 
  }, {}) 
}

jsfiddle