Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular LoadAsh-按不同类型的多个对象上的字段匹配筛选记录_Javascript_Angularjs - Fatal编程技术网

Javascript Angular LoadAsh-按不同类型的多个对象上的字段匹配筛选记录

Javascript Angular LoadAsh-按不同类型的多个对象上的字段匹配筛选记录,javascript,angularjs,Javascript,Angularjs,我一直在努力学习loadash,以及如何使用一些更高级的技巧正确提取所需的数据。单个对象和查找非常简单,但是如果groupId存在于另一个不同的对象中,我将尝试按groupId提取所有数组记录 例如: 对象的通用JSON示例,每个对象都是记录数组 Groups .. { groupId: name: code: } Options .. { groupId: optionId: name: code: } 我遇到的问题是,只有在loa

我一直在努力学习loadash,以及如何使用一些更高级的技巧正确提取所需的数据。单个对象和查找非常简单,但是如果groupId存在于另一个不同的对象中,我将尝试按groupId提取所有数组记录

例如: 对象的通用JSON示例,每个对象都是记录数组

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

希望这能有所帮助。

太棒了,我知道我错过了一些简单的东西。非常感谢。