2017-05-26 58 views
0

如何仅通过真实条件获取分组数据。下面将使用键true和false返回两个值。如何仅通过真实条件获取分组数据

var users = [ 
    { 'user': 'barney', 'age': 36, 'active': true }, 
    { 'user': 'fred', 'age': 40, 'active': false }, 
    { 'user': 'barney', 'age': 36, 'active': true }, 
    { 'user': 'barney', 'age': 36, 'active': true }, 
    { 'user': 'barney', 'age': 36, 'active': true } 
]; 

result = _.groupBy(users, { 'user': 'fred' }); 

回答

1

您需要在组之前filter数据:

var result = _(users) 
    .filter('active') 
    .groupBy('user') 
    .value(); 
+0

我KNW这种方式。如果我使用上面的代码来完成它。它有两个列表,一个用false作为键和失败列表,另一个用成功列表的真键。 – Aswathy

+0

你是否试图找到所有具有用户名为fred的对象?如果是这样,那么只需使用一个过滤器:'_.filter(users,{user:'fred'})'。像你的例子那样用matcher迭代器进行分组并不是真的有意义。你最好使用lodash函数'partition'。 –