Javascript Angular LoadAsh-按不同类型的多个对象上的字段匹配筛选记录
我一直在努力学习loadash,以及如何使用一些更高级的技巧正确提取所需的数据。单个对象和查找非常简单,但是如果groupId存在于另一个不同的对象中,我将尝试按groupId提取所有数组记录 例如: 对象的通用JSON示例,每个对象都是记录数组Javascript Angular LoadAsh-按不同类型的多个对象上的字段匹配筛选记录,javascript,angularjs,Javascript,Angularjs,我一直在努力学习loadash,以及如何使用一些更高级的技巧正确提取所需的数据。单个对象和查找非常简单,但是如果groupId存在于另一个不同的对象中,我将尝试按groupId提取所有数组记录 例如: 对象的通用JSON示例,每个对象都是记录数组 Groups .. { groupId: name: code: } Options .. { groupId: optionId: name: code: } 我遇到的问题是,只有在loa
Groups ..
{
groupId:
name:
code:
}
Options ..
{
groupId:
optionId:
name:
code:
}
我遇到的问题是,只有在loadash中的Groups数组中存在groupId时,才能提取所有选项
我试过一些东西,比如
var results = [];
_.forEach(Groups, function(g) {
var found _.find(Options, g, function(option, group) {
return option.groupId === group.groupId;
})
results.push(found);
});
我还没有找到最好的过滤方法
如果你有智慧的话,谢谢 像这样的事情应该行得通
var result = _.filter(Options, function(o) {
return _.filter(Groups, function(g) { return g.groupId == o.groupid; }).length > 0;
});
实际上,我认为使用find
,内部搜索会执行得更好,因为它会返回第一个匹配项,但不确定
var result = _.filter(Options, function(o) {
return _.find(Groups, { 'groupId': o.groupid });
});
希望这能有所帮助。太棒了,我知道我错过了一些简单的东西。非常感谢。