我有一个包含对象的数组。每个对象都有一个唯一的ID。从数组中获取特定对象的最佳方法是什么?
目前我使用的是这样的
this.getObjectById = function(objectId){
return $.grep(this.objects, function(e){ return e.id === objectId; })[0];
}
但事实是
$.grep();
返回一系列结果我不知道我是否应该这样做。因为目前我采用了这个数组的第一个元素并且它很好,因为我只有一个元素。
但是有更干净的方式吗?
时
Array.prototype.find()
更好的一个?
答案 0 :(得分:1)
查找更快,因为它返回第一个匹配,而jquery grep循环遍及整个数组。如果您需要完整的浏览器支持,只需创建自己的功能:
this.getObjectById = function(objectId){
for(var i = 0; i<this.objects.length; i++){
if(objectId == this.objects[i].id) return this.objects[i];
}
return null;
}
答案 1 :(得分:0)
使用underscore.js _.find()方法迭代您的收藏。