使用递归获取嵌套对象属性

时间:2015-04-10 12:38:20

标签: javascript recursion underscore.js

以下是我的目标:

var obj = {
    'test': {
        'id1': 1,
        'id2': 2,
        'id3': 3
    }, 'test2': {
        'id4': 4,
        'id5': {
            'id123': 3,
            'id456': 6
        }
    },
    'test3': 45,
    'test4': 55
}

我正在尝试编写一个递归函数来获取格式如。

的嵌套属性
test.id1, test2.id5.id123 etc...

但我没有得到如上所示嵌套的属性。

以下是我的功能

function getKey(obj, key) {
    var keyArr = [];
    var newKey = key;
    var data=newKey;

    if (_.isObject(obj[key])) {

      _.each(_.keys(obj[key]), function(singleKey) {
        newKey =  data + '.'+ getKey(obj[key], singleKey);
        return newKey
      });
    }

    return keyArr.length ? keyArr : newKey;   
  }

我正在调用这个函数 var keys = _.keys(obj); _.each(keys,function(key){   getKey(obj,key); }

任何人都可以帮忙解决这个问题吗? 感谢

0 个答案:

没有答案