2014-03-06 94 views
1

下面是我的json数组,我试图根据活动用户对其进行过滤。Underscore.js - 根据属性过滤json数组

var users = [{"name":"user1","isActive":true}, {"name":"user2","isActive":false}, {"name":"user3", "isActive":true}]; 

$scope.filteredUsers = _.filter(users, function(user) { return user.isActive == true; }); 

我希望可以将输出为

$scope.filteredUsers = [{"name":"user1","isActive":true}, {"name":"user3", "isActive":true}]; 

我究竟做错了什么?这是正确的方法还是应该使用_.where?谢谢

+0

它的工作原理。 '_filteredUsers'正是你运行这段代码后所需要的。 – kamilkp

+1

是不是'return user.isActive == true;'? – Andy

+0

我编辑了我的问题。请在下面的答案中查看我的评论,了解我想要做的更多细节。 – Ren

回答

3

我看不出在你的方法中的任何错误,只不过你是过滤isActive == false。如果你想活跃的用户,你必须改变你的过滤器:

var activeUsers = _.filter(users, function(user) { return user.isActive }); 
+0

谢谢。我编辑了我的问题。我试图在角度控制器中使用相同的方法。所以,像$ scope.filteredItems = _.where(.....);目前似乎没有工作。让我再次检查我的代码。 – Ren

+0

现在都在工作。谢谢 :) – Ren