我有这个对象数组,我正在尝试解析,所以我可以从一个实例中获取字段
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
。
关于我在这里缺少什么的线索?