使用Undercore.js查询数组
Query Array with Underscore.js
我有两个JavaScript数组。我的第一个数组是这样的:
teams: [
{ id: 1, name:'Flyers' },
{ id: 2, name:'Hawks' },
{ id: 3, name:'Bats' },
{ id: 4, name:'Ninjas' },
{ id: 5, name:'Seals' }
];
selected: ["1", "3", "4"];
如何返回已选定ID的团队数组?我正试图用undercore.js来做这件事。目前,我有:
var selected = _.filter(teams, function (team) {
return _.contains(selected, team.id);
});
然而,这不起作用。我做错了什么?
由于team.id
是一个数字,它永远不会出现在字符串数组中。
对此,我将使用两步流程。在循环中使用_.contains
是一个坏习惯,您可以通过使用_.object
:预计算一个简单的查找表来跳过它
var selected_has = _(selected).object(selected);
由于selected
中的所有值都是真的,我们可以说if(select_has[id])
之类的话来看看id
是否在selected
中。
var matches = _(teams).filter(function(o) {
return selected_has[o.id]
});
当然,您为类型转换付出了一点代价,但您获得了表现力。
演示:http://jsfiddle.net/ambiguous/b4XyU/
相关文章:
- 在mongoose中使用正则表达式在对象数组中进行查询搜索
- MongoDB嵌套对象数组后查询
- jQuery对象从html表中查询为两个一维数组,用于Chartist图表
- 使用查询将对象数组发布到asp.net-mvc控制器操作的正确方法是什么
- 数组数据排序类似mysql查询
- 基于其他属性查询多维数组属性
- 解析查询查找方法返回对象而不是数组
- angularjs $resource将查询资源列表转换为对象数组
- Jquery数组查询不起作用
- 使用Undercore.js查询数组
- javascript数组查询
- 从查询字符串中获取变量,将其与Javascript中的数组匹配
- 查询以匹配数组的第n个文档
- 从数组查询获取对象 JSON 值时出错
- 数组查询的Javascript数组
- Javascript定时器与数组查询
- 如何解析Ember.js控制器中的数组查询参数?
- Ajax - JQuery,数组查询字符串
- Mongodb嵌套对象数组查询
- j从数组查询随机项不起作用