递归javascript函数返回undefined

时间:2017-04-09 16:43:49

标签: javascript recursion

我有这个对象数组,我正在尝试解析,所以我可以从一个实例中获取字段

const obj = [{
  'name': 'A',
  'type': 'group',
  'fields': [a_bunch_of_objs],
  'instances': [
    {
      name: 'AA',
      'type': 'group',
      'fields': [a_bunch_of_objs],
      'instances': [
        {
          'name': 'AAA',
          'type': 'group',
          'fields': [a_bunch_of_objs],
          'instances': []
        }
      ]
    }
  ]
},
{
  'name': 'B',
  'type': 'bla',
  'instances': []
}];

我有一个递归函数

getInstanceFields: function(form_fields, instance_name) {
    var self = this;
    form_fields.forEach(function(field) {
      if (field.field_type === 'group') {
        field.instances.forEach(function(instance) {
          if (instance.name === instance_name) {
            return instance.fields;
          } else {
            return self.getInstanceFields(instance.fields, instance_name);
          }
        });
      }
    });
  },

我这样称呼:getInstanceFields(obj,'name_to_search_for');

问题是,如果我在返回instance.fields之前添加控制台日志,我会看到正确的值,但是如果实际返回的结果是undefined

关于我在这里缺少什么的线索?

0 个答案:

没有答案